Ich verwende EF4 DbContext, um das Modell für eine ASP.NET MVC-App bereitzustellen. Ich verwende ViewModels, um den Ansichten Daten bereitzustellen, und Automapper, um die Zuordnung zwischen den EF POCOs und den ViewModels durchzuführen. Automapper macht eine gute Arbeit, aber ich bin nicht klar, die beste Art, es zu verwenden, nachdem das ViewModel zurück auf den Controller gebucht wurde, um ein Update durchzuführen.Verwenden von Automapper zum Aktualisieren einer vorhandenen Entity POCO
Meine Idee ist es, POCO-Objekt mit einem Schlüssel im ViewModel zu erhalten. Ich möchte dann AutoMapper verwenden, um die POCO mit Daten aus dem Ansichtsmodell zu aktualisieren:
[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");
}
Zwei Fragen:
- Die Find() Methode gibt einen Proxy anstatt eine POCO die AutoMapper verursacht zu beklagen. Wie bekomme ich den POCO statt des Proxy?
- Ist diese Best Practice für die Durchführung eines Updates?
Diese helfen könnten: http://stackoverflow.com/questions/6156538/entityframework-get-object-by-id – Dmitry
Ich denke, das ist OK, elegant sogar . Sie verwenden die korrekte Überladung von 'Mapper.Map'. –
Dank @Gert Arnold, mein Vertrauen in diesen Ansatz erhöht. –