He leído la página wiki de mapeo anidado, pero parece que no me gustan los niveles múltiples de anidamiento. Tengo los siguientes mapas creados y las clases definidas.Correlación anidada de Automapper
AutoMapper.Mapper.CreateMap<Address, AddressDTO>();
AutoMapper.Mapper.CreateMap<MatchCompanyRequest, MatchCompanyRequestDTO>();
public class MatchCompanyRequest
{
Address Address {get;set;}
}
public class MatchCompanyRequestDTO
{
public CompanyInformationDTO {get;set;}
}
public class CompanyInformationDTO {get;set;}
{
public string CompanyName {get;set;}
public AddressDTO Address {get;set;}
}
Pero el siguiente código ...
// works
matchCompanyRequestDTO.companyInformationDTO.Address =
AutoMapper.Mapper.Map<Address, AddressDTO>(matchCompanyRequest.Address);
// fails
matchCompanyRequestDTO =
AutoMapper.Mapper
.Map<MatchCompanyRequest, MatchCompanyRequestDTO>(matchCompanyRequest);
hace este trabajo de anidación profunda y lo tengo configurado incorrectamente? ¿O este tipo de anidación aún no es compatible?
- Editar
Para todos los interesados, no tengo el control de los dtos.
Cómo sería algo como esto puede configurar si usted no está utilizando la estática ¿Instancia 'Mapper'? – dougajmcdonald
¿Entonces solo usa su instancia en lugar de 'AutoMapper.Mapper'? Realmente no sé, han pasado años desde que utilicé AutoMapper ... – Bartosz
Sí, la mejor práctica en estos días es crear un perfil y alimentarlo en la configuración para que pueda DI y no usar las instancias estáticas. Tengo curiosidad porque veo esto como una solución común y me pregunto cómo encaja con las mejores prácticas actuales. – dougajmcdonald