Tôi đang sử dụng EF4 DbContext để cung cấp mô hình cho ứng dụng ASP.NET MVC. Tôi sử dụng ViewModels để cung cấp dữ liệu cho các khung nhìn và Automapper để thực hiện ánh xạ giữa EF POCO và ViewModels. Automapper làm một công việc tuyệt vời nhưng tôi không rõ cách tốt nhất để sử dụng nó sau khi ViewModel được đăng trở lại bộ điều khiển để thực hiện một bản cập nhật.Sử dụng Automapper để cập nhật Thực thể POCO
Ý tưởng của tôi là lấy đối tượng POCO bằng khóa có trong ViewModel. sau đó tôi muốn sử dụng Automapper để cập nhật các POCO với dữ liệu từ các 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");
}
Hai câu hỏi:
- Phương pháp Find() trả về một Proxy chứ không phải là một POCO gây Automapper để phàn nàn. Làm thế nào để tôi nhận được POCO thay vì Proxy?
- Đây có phải là phương pháp hay nhất để thực hiện cập nhật không?
này có thể giúp: http://stackoverflow.com/questions/6156538/entityframework-get-object-by-id – Dmitry
Tôi nghĩ rằng đây là OK, tao nhã thậm chí . Bạn sử dụng quá tải chính xác của 'Mapper.Map'. –
Cảm ơn @Gert Arnold, tăng sự tự tin của tôi trong cách tiếp cận đó. –