コントローラの[HttpPost] UpdateアクションメソッドでAutoMapperを使用できません。ASP.NET MVCのUpdateModelからUpdateModelへのEntity Trackingフィールドを追跡する
私は、CreatedDate、CreatedBy、ModifiedDate、ModifiedByなどのEntityトラッキングフィールドを持っていますが、ViewModelのフィールドとしてフィールドを持っていません。更新アクションメソッドでユーザー投稿フォームが、私は、通常のようなものだろうとき
:この時点でvar product = Mapper.Map<Product>(productViewModel);
を追跡フィールドがNULLです。私はそれらを得ることはできません。私は2つの選択肢があるように見えます
:それらがサーバーにポストバックされるように
はちょうど「ID」のような隠されたフィールドとしてビューモデルにして、HTMLで追跡フィールドを追加します。
新しい製品オブジェクトを作成する代わりに、viewModel.Idに基づいてデータベースから製品を取得し、フォームでユーザーが編集した可能性のあるすべての値をviewModelsの新しい値で手動で上書きします。
誰もがこれに関する追加の考えや勧告を持っていますか?ステップ1は私が必要としないページに行く余分なデータであり、ステップ2はAutoMapperのない余分なデータベース呼び出しと不潔なコードです。
オプション1このシナリオで使用します。とにかくページにモデルをバインドしていますが、さらにいくつかのフィールドが傷つくことはありません。データベースへの別の旅行よりも良い!しかし、あなたは正しい、私はそれらがあなたの唯一の選択肢だと思う。 – garethb