Comment utiliser AutoMapper à la carte de l'objet de destination avec un enfant de l'objet dans l'objet source?

J'ai la source et la destination des objets comme ceci:

class ProductWithCategories //Source class
{
    public Product Product { get; set; } //Product is an EF entity class
    public IEnumerable<Category> Categories { get; set; }
}

class ProductViewModel //Dest class
{
    public int Id { get; set; }
    //Other properties with the same name as Product class

    public IEnumerable<CategoryViewModel> Categories { get; set; }
}

Donc, mon besoin est de mapper les valeurs de source.Product en dest, puis source.Categories en dest.Categories. Est-il possible avec AutoMapper?

J'ai essayé et je n'ai pas été surpris quand il a échoué:

        config.CreateMap<ProductWithCategories, ProductViewModel>()
            .ForMember(q => q, option => option.MapFrom(q => q.Product))
            .ForMember(q => q.Categories, option => option.MapFrom(q => q.Categories));

Ici est l'exception que j'ai reçu:

[AutoMapperConfigurationException: configuration Personnalisée pour les membres est
pris en charge uniquement pour le premier niveau différents membres sur un type.]

OriginalL'auteur Luke Vo | 2016-02-23