ASP.net MVC - Следует ли мне использовать AutoMapper из ViewModel в сущности Entity Framework?

В настоящее время я использую AutoMapper для сопоставления моих сущностей Entity Framework с моей моделью представления:

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);
    }
}

Это хорошо работает.У меня возникает вопрос, когда мне нужно перейти от моей модели представления к моей сущности, чтобы обновить базу данных. Следует ли мне использовать для этого AutoMapper? Это плохая / опасная практика?

Похоже, AutoMapper хорош для сглаживания сложного типа в простой (плоский) тип, но пока я изо всех сил пытаюсь перейти от плоского / простого к более сложному типу как моя сущность с различными свойствами навигации.

Если использовать AutoMapper для этого - плохая идея, то как будет выглядеть мой код для действия Create?

public ActionResult Create(CreateProductViewModel model)
{
    if( ModelState.IsValid )
    {
        // what do i do here to create my Product entity?
    }
}

А как насчет действия Edit?

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???
}
21
задан Dismissile 28 September 2011 в 20:02
поделиться