我试图了解将编辑模型中的字段(从视图表单发回)映射到域模型的最佳方法,以便我可以 SubmitChanges() 并更新数据库记录(通过 Linq 到 SQL)。我的例子很简单,答案可能是手动完成。我要问的问题是对于具有更多字段的模型仍然可以手动完成,也许这就是答案 - 但有没有更简单的方法(也许使用 AutoMapper)?
我的领域模型:
public class Product
{
public int ProductId { get; set; }
public string Name { get; set; }
public int Color { get; set; }
public string SerialNumber { get; set; }
}
我的视图/编辑模型:
public class ProductVM
{
public int ProductId { get; set; }
public string Name { get; set; }
public IEnumberable<Color> Colors { get; set; } // To populate a dropdown in the view with color key/values
}
我的控制器动作:
[HttpPost]
public ActionResult UpdateProduct(ProductVM product)
{
var productService = new ProductService();
productService.Update(product);
}
我的服务层中的更新方法:
public void Update(ProductVM productVM)
{
Product product = dataContext.Products.Single(p=>p.ProductId == productVM.ProductId);
// What's the best way to map the fields of productVM into product so I can submit the changes?
dataContext.SubmitChanges();
}
我只想映射 productVM 中与产品中的字段匹配的字段。编辑模型具有域模型中不存在的字段,域模型具有编辑模型中不存在的字段。我的最终目标是从编辑模型中的字段更新数据库中的字段。
谢谢