Mit Automapper zum aktualisieren einer vorhandenen Entität POCO
Ich bin mit EF4 DbContext zu bieten, das Modell für eine ASP.NET MVC-app. Ich ViewModels verwenden, um Daten zu liefern, um die Ansichten und Automapper, führen Sie die Zuordnung zwischen den EF-POCOs und die ViewModels. Automapper macht einen tollen job, aber ich bin mir nicht klar, der beste Weg, es zu benutzen, nachdem das ViewModel gebucht wird zurück an den controller ein update.
Meine Idee ist to get POCO-Objekt mit einem Schlüssel im ViewModel. Dann möchte ich verwenden Automapper zu aktualisieren POCO mit Daten aus dem ViewModel:
[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 einem POCO wodurch Automapper zu beschweren. Wie bekomme ich die POCO, anstatt den Proxy?
- Ist diese best practice für die Durchführung eines update?
Dies könnte helfen: stackoverflow.com/questions/6156538/...
Ich denke, das ist OK, elegant sogar. Verwenden Sie die richtige überlastung der
Danke @Gert Arnold, erhöht mein Vertrauen in diesen Ansatz.
Ich denke, das ist OK, elegant sogar. Verwenden Sie die richtige überlastung der
Mapper.Map
.Danke @Gert Arnold, erhöht mein Vertrauen in diesen Ansatz.
InformationsquelleAutor Paul Taylor | 2012-11-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie Automapper so, es gibt einen neuen Patienten-Objekt und die Verweise auf die enity framework graph nicht gehalten werden. Sie haben, um es so zu benutzen:
InformationsquelleAutor Marius Stănescu
Scheint es zwei Ansätze zum Umgang mit den EF-proxy Problem:
Hinweis. Letzteres ist kommentiert mit "Raum für Verbesserung. Siehe: Automapper : Zuordnung Problem mit Vererbung und abstrakte Basis-Klasse, die auf Sammlungen mit Entity Framework 4-Proxy-Pocos".
InformationsquelleAutor Paul Taylor