Я использую EF4 DbContext, чтобы предоставить модель для приложения ASP.NET MVC. Я использую ViewModels для предоставления данных в представлениях и Automapper для выполнения сопоставления между EOC POCOs и ViewModels. Automapper отлично справляется, но я не знаю, как лучше использовать его после того, как ViewModel отправляется обратно на контроллер для выполнения обновления.
Моя идея - получить объект POCO с помощью ключа, содержащегося в ViewModel. Затем я хочу использовать Automapper для обновления POCO с данными из 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");
}
Два вопроса:
- Метод Find() возвращает прокси, а не POCO, который заставляет Automapper жаловаться. Как получить POCO вместо прокси?
- Является ли это лучшей практикой для выполнения обновления?