Automapper - отображение подклассов
У меня есть метод, который определяет некоторые отображения следующим образом:
/// <summary>
/// Mapping definitions for domain entities to database entities
/// </summary>
private static void DefineMappingDomainEntitiesToDatabase()
{
// SellerListing
Mapper.CreateMap<SellerListing, Data.SellerListing>();
// ListingShippingCost
Mapper.CreateMap<ListingShippingCost, Data.ListingShippingCost>();
}
Определение сущности SellerListing содержит следующее свойство
List<ListingShippingCost> ListingShippingCostList { get; set; }
Когда я звоню Mapper.AssertConfigurationIsValid();
Я получаю следующую ошибку:
SellerListing -> SellerListing (Destination member list)
MyApp.Entities.SellerListing -> MyApp.Data.SellerListing (Destination member list)
Unmapped properties:
ListingShippingCost
Так что это говорит мне, что у меня нет сопоставления для ListingShippingCost, хотя у меня есть определение сопоставления для ListingShippingCost, как вы можете видеть. Очевидно, мне нужно добавить что-то в мое определение SellerListing для этого сопоставления, но я не уверен, что именно.
1 ответ
Решение
Вы должны определить, откуда вы отображаете свойство ListingShippingCost:
private static void DefineMappingDomainEntitiesToDatabase()
{
// SellerListing
Mapper.CreateMap<SellerListing, Data.SellerListing>()
.ForMember(x => x.ListingShippingCost, cfg => cfg.MapFrom(y => y.ListingShippingCostList));
// ListingShippingCost
Mapper.CreateMap<ListingShippingCost, Data.ListingShippingCost>();
}