В нем отсутствует сопоставление адреса с CompanyInformationDTO
, поскольку эти объекты находятся на одном уровне гнезда.
Карта создана для MatchCompanyRequest
-> MatchCompanyRequestDTO
, но она не можетвыяснить, может ли оно отображать Address
на CompanyInformationDTO
.
Так что ваш MatchCompanyRequestDTO
может фактически иметь то же объявление, что и ваше CompanyInformationDTO
:
public class MatchCompanyRequestDTO
{
public string CompanyName {get;set;}
public AddressDTO Address {get;set;}
}
Это, конечно, тольковлияет на вас, если вы хотите использовать автоматическое отображение.Вы все еще можете настроить свои карты вручную, но кажется, что вместо этого DTO должны быть исправлены, давайте все равно попробуем:
public class CustomResolver : ValueResolver<Address, CompanyInformationDTO>
{
protected override CompanyInformationDTO ResolveCore(Address source)
{
return new CompanyInformationDTO() { Address = Mapper.Map<Address, AddressDTO>(source) };
}
}
// ...
AutoMapper.Mapper.CreateMap<MatchCompanyRequest, MatchCompanyRequestDTO>()
.ForMember(dest => dest.companyInformationDTO, opt => opt.ResolveUsing<CustomResolver>().FromMember(src => src.Address)); // here we are telling to use our custom resolver that converts Address into CompanyInformationDTO