Я пытаюсь понять, как лучше отобразить поля в Редактируемой модели (отправленные обратно из формы представления) в Доменную модель, чтобы я мог SubmitChanges () и обновить запись базы данных (через Linq to 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
}
My Controller Action:
[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, которые совпадают с полями в продукте. В модели редактирования есть поля, которых нет в модели домена, а в модели домена есть поля, которых нет в модели редактирования. Моя конечная цель - обновить поля в базе данных из полей в Редактировать модель.
Спасибо