Tôi hiện đang sử dụng để lập bản đồ AutoMapper Entity Framework đơn vị của tôi để xem mẫu của tôi:ASP.net MVC - Tôi có nên sử dụng AutoMapper từ các đối tượng ViewModel đến Entity Framework không?
public class ProductsController : Controller
{
private IProductRepository productRepository;
public ProductsController(IProductRepository productRepository)
{
this.productRepository = productRepository;
}
public ActionResult Details(int id)
{
var product = productRepository.GetProduct(id);
if(product == null)
return View("NotFound");
ProductDetailsViewModel model = Mapper.Map<Product, ProductDetailsViewModel>(product);
return View(model);
}
}
này hoạt động tốt. Câu hỏi mà tôi có là khi tôi cần phải đi từ Mô hình Xem của mình đến thực thể của tôi để cập nhật cơ sở dữ liệu. Tôi có nên sử dụng AutoMapper cho việc này không? Đây có phải là một thực hành xấu/nguy hiểm không? Có vẻ như AutoMapper là tốt cho việc làm phẳng một loại phức tạp thành một kiểu đơn giản (phẳng), nhưng cho đến nay tôi đang cố gắng chuyển từ kiểu đơn giản sang kiểu phức tạp hơn như thực thể của tôi với các điều hướng khác nhau tính chất.
Nếu bạn sử dụng AutoMapper để làm điều này, thì mã của tôi sẽ trông như thế nào đối với hành động Tạo?
public ActionResult Create(CreateProductViewModel model)
{
if(ModelState.IsValid)
{
// what do i do here to create my Product entity?
}
}
Điều gì về hành động Chỉnh sửa?
public ActionResult Edit(int id, EditProductViewModel model)
{
Product product = productRepository.GetProduct(id);
// how do i convert my view model to my entity at this point???
}
mô hình chế độ xem của bạn có thể có thuộc tính của sản phẩm thực thể, theo cách đó bạn sẽ không cần phải chuyển đổi chút nào. – Joakim
Bài viết này cung cấp một vài gợi ý. http://lostechies.com/jimmybogard/2009/06/30/how-we-do-mvc-view-models/ – jrummell