ASP.net MVC - dois-je utiliser AutoMapper de ViewModel pour Entity Framework entités?

Je suis actuellement en utilisant AutoMapper à la carte de mon Entity Framework entités à mon avis, Modèle:

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

Cela fonctionne bien. La question que j'ai, c'est quand j'en ai besoin pour aller de mon point de Vue le Modèle de l'entité, afin de mettre à jour la base de données. Dois-je utiliser AutoMapper pour cela? Est-ce une mauvaise/pratique dangereuse?

Il semble que AutoMapper est bon pour l'aplatissement d'un type complexe pour un simple (plat) type, mais jusqu'à présent, j'ai du mal en essayant de passer d'un plat/simple à la plus complexe de type comme mon entité avec les différentes propriétés de navigation.

Si c'est une mauvaise idée d'utiliser AutoMapper pour ce faire, alors ce serait mon code pour ressembler à une action de création?

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

Ce sujet d'une action d'Édition?

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???
}
InformationsquelleAutor Dismissile | 2011-09-28