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>();
}
Другие вопросы по тегам