EF4 DbContextを使用して、ASP.NETMVCアプリのモデルを提供しています。ViewModelsを使用してビューにデータを提供し、Automapperを使用してEFPOCOとViewModels間のマッピングを実行します。Automapperは素晴らしい仕事をしますが、ViewModelがコントローラーにポストバックされて更新を実行した後、Automapperを使用する最良の方法がわかりません。
私の考えは、ViewModelに含まれているキーを使用してPOCOオブジェクトを取得することです。次に、Automapperを使用して、ViewModelからのデータでPOCOを更新します。
[HttpPost]
public ActionResult Edit(PatientView viewModel)
{
Patient patient = db.Patients.Find(viewModel.Id);
patient = Mapper.Map<ViewModel, Patient>(viewModel, patient);
...
db.SaveChanges();
return RedirectToAction("Index");
}
2つの質問:
- Find()メソッドは、Automapperが文句を言う原因となるPOCOではなくプロキシを返します。プロキシの代わりにPOCOを取得するにはどうすればよいですか?
- これは、更新を実行するためのベストプラクティスですか?