Używam DbContext EF4, aby udostępnić model aplikacji ASP.NET MVC. Używam ViewModels do dostarczania danych do widoków i Automappera, aby wykonać mapowanie między EF POCO a ViewModels. Automapper wykonuje świetną robotę, ale nie jestem pewien, jaki jest najlepszy sposób jej użycia po przesłaniu ViewModel do kontrolera w celu przeprowadzenia aktualizacji.Używanie Automappera do aktualizacji istniejącej jednostki POCO
Mój pomysł polega na pobraniu obiektu POCO za pomocą klucza zawartego w ViewModelu. Następnie chcę używać Automapper zaktualizować poco danymi z 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");
}
dwa pytania:
- Sposób find() zwraca Proxy zamiast POCO co powoduje Automapper narzekać. Jak uzyskać POCO zamiast Proxy?
- Czy ta metoda służy do aktualizacji?
To może pomóc: http://stackoverflow.com/questions/6156538/entityframework-get-object-by-id – Dmitry
myślę, że jest OK, nawet elegancki . Używasz właściwego przeciążenia 'Mapper.Map'. –
Dzięki @Gert Arnold, zwiększyłem moje zaufanie do tego podejścia. –