私はEF4 DbContextを使用してASP.NET MVCアプリケーションのモデルを提供しています。 ViewModelsを使用してビューにデータを提供し、AutomapperはEF POCOとViewModels間のマッピングを実行します。 Automapperは素晴らしい仕事をしていますが、ViewModelをコントローラにポストバックしてアップデートを実行した後で、それを使う最良の方法はわかりません。Automapperを使用して既存のEntity POCOを更新する
私の考えは、ViewModelに含まれているキーを使ってPOCOオブジェクトを取得することです。私は、その後のViewModelからのデータをPOCOを更新するためにAutomapperを使用したい:
[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つの質問:
- 検索()メソッドはAutomapperが文句を原因とPOCOのではなく、プロキシを返します。プロキシの代わりにPOCOを取得するにはどうすればよいですか?
- 更新を実行するこのベストプラクティスはありますか?
これは役立つかもしれません:あなたはこのようにそれを使用する必要が http://stackoverflow.com/questions/6156538/entityframework-get-object-by-id – Dmitry
私は、これはOK、エレガントでもあると思います。 'Mapper.Map'の正しいオーバーロードを使用します。 –
ありがとう@ガートアーノルド、そのアプローチへの私の信頼を高めた。 –