Я новичок в AutoMapper и имею проблему, которую я пытаюсь решить.Сопоставление от списка до объекта с помощью AutoMapper
Если у меня есть класс источника, как это:
public class Membership
{
public int MembershipId { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string OrganizationName { get; set; }
public List<Address> Addresses { get; set; }
}
А класс Адреса выглядит следующим образом:
public class Address
{
public int AddressId{ get; set; }
public int RefAddressTypeId { get; set; }
public string AddressLine1 { get; set; }
public string AddressLine2 { get; set; }
public string City { get; set; }
public string State { get; set; }
public string Zip { get; set; }
public bool IsPreferredAddress { get; set; }
}
Мой класс назначение:
public class UserInformationModel
{
public string UserName { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Organization { get; set; }
public string EmailAddress { get; set; }
public PhysicalAddress BillingAddress { get; set; }
public PhysicalAddress ShippingAddress { get; set; }
}
И назначение адресный класс:
public class PhysicalAddress
{
public AddressType AddressType{get; set;}
public string AddressLine1 { get; set; }
public string AddressLine2 { get; set; }
public string City { get; set; }
public string State { get; set; }
public string PostalCode { get; set; }
}
Я настроил отображение, как это:
Mapper.CreateMap<MinistryMattersIntegration.BusinessObjects.Entities.Cokesbury.Membership, UserInformationModel>()
.ForMember(dest => dest.Organization, opt => opt.MapFrom(src=>src.OrganizationName));
Это работает на членство в UserInformationModel, но теперь мне нужно получить адрес работающим. Следует отметить, однако, что назначение - это один адрес фактурирования и один адрес доставки в исходной модели, все адреса хранятся в виде списка. То, как вы находите адреса доставки и выставления счетов из списка, - это просмотр RefAddressTypdId и IsPreferredAddress. Только один предпочтительный адрес может существовать с определенным RefAddressTypeId.
Итак, мой вопрос в том, как вы получаете AutoMapper для такого отображения? Возможно ли, или мне лучше просто идти с регулярным кодом сопоставления?
У меня также есть аналогичная проблема. Вы нашли решение своей проблемы? Если да, то можете ли вы, пожалуйста, поделиться со мной. Я не получаю, как использовать CustomResolver. Если вы можете поделиться некоторыми примерами по вашему делу, это будет очень полезно. – Rupesh