Sto utilizzando EF4 DbContext per fornire il modello per un'applicazione ASP.NET MVC. Uso ViewModels per fornire dati alle viste e Automapper per eseguire la mappatura tra EF POCO e ViewModels. Automapper fa un ottimo lavoro ma non sono chiaro il modo migliore di usarlo dopo che ViewModel è stato posticipato al controller per effettuare un aggiornamento.Utilizzo di Automapper per aggiornare un'entità POCO esistente
L'idea è di ottenere l'oggetto POCO utilizzando una chiave contenuta nel ViewModel. Io poi voglio usare Automapper per aggiornare la POCO con i dati del 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");
}
due domande:
- Il metodo Find() restituisce un proxy piuttosto che un POCO che provoca Automapper a lamentarsi. Come ottengo il POCO invece del Proxy?
- Questa procedura consigliata per eseguire un aggiornamento?
Questo potrebbe aiutare: http://stackoverflow.com/questions/6156538/entityframework-get-object-by-id – Dmitry
penso che questo è OK, elegante anche . Si utilizza il sovraccarico corretto di 'Mapper.Map'. –
Grazie a @Gert Arnold, ho aumentato la mia fiducia in questo approccio. –