Ho l'oggetti di origine e di destinazione in questo modo:Come utilizzare AutoMapper per mappare l'oggetto destionation con un oggetto figlio nell'oggetto di origine?
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; }
}
Quindi, la mia necessità è quella di mappare i valori di source.Product
in dest
, e poi source.Categories
in dest.Categories
. È possibile con AutoMapper?
Ho provato questo e non mi ha sorpreso quando non è riuscito:
config.CreateMap<ProductWithCategories, ProductViewModel>()
.ForMember(q => q, option => option.MapFrom(q => q.Product))
.ForMember(q => q.Categories, option => option.MapFrom(q => q.Categories));
Qui è l'eccezione che ho ricevuto:
[AutoMapperConfigurationException: Configurazione personalizzata per i soci è supportata solo per il top -level singoli membri su un tipo.]
Esiste un modo per realizzare questo utilizzando i mapper basati su istanze? Questo sta usando il 'Mapper' statico. – kamranicus
Sì, è possibile, ha aggiunto un commento alla risposta di Cliff. Per realizzarlo è necessaria la versione 5.x di Automapper. – kamranicus