これは簡単な質問です:
基本的に、コントローラ アクションへの更新操作のためにドメイン モデルを POST サブミットするとき、アクション内で .Find() を呼び出し、この取得したオブジェクトの対応するフィールドに値を割り当ててから、SaveChanges() を呼び出します。
これで問題ありませんが、更新されるフィールドが数十個あるクラスがある場合を除きます。メソッドの各フィールドを列挙しないで、より短い方法があるのだろうか?
ありがとう。
これは簡単な質問です:
基本的に、コントローラ アクションへの更新操作のためにドメイン モデルを POST サブミットするとき、アクション内で .Find() を呼び出し、この取得したオブジェクトの対応するフィールドに値を割り当ててから、SaveChanges() を呼び出します。
これで問題ありませんが、更新されるフィールドが数十個あるクラスがある場合を除きます。メソッドの各フィールドを列挙しないで、より短い方法があるのだろうか?
ありがとう。
ドメイン モデル全体をビューに渡すと、それを使用して保存できます。
[HttpPost]
public ActionResult Edit(MyDomainModel model) {
db.Entry(model).State = EntityState.Modified;
db.SaveChanges();
return ....;
}
たとえば、ビュー モデルを使用している場合は、AutoMapperを使用してビュー モデルをドメイン モデルに簡単にマップできます。
多分私は質問に正しく従っていません。しかし、ビューが更新されたドメイン モデルで渡されている場合、マッピングする代わりに EF を使用して更新を実行しないのはなぜでしょうか?