tengo estas clases
public class SemModel { public int SemId {get; set} public string AreaId {get; set} public string Longitude {get; set} public string Latitude {get; set} } public class SemDto { public int SemId {get; set} public AreaDto Area {get; set} } public class AreaDto { public string AreaId {get; set} public string Longitude {get; set} public string Latitude {get; set} }Quiero poder asignar SemModel a SemDto en el que si AreaId, Longitud y Latitude son nulos, SemDto.Area se crea con las propiedades AreaId, Longitud y Latitude que tienen un valor nulo.
El resultado real es que tengo un SemDto donde la propiedad Area es nula
este es el mapeo que tengo
CreateMap<SemModel, SemDto>() .ForMember(dest => dest.Area, opt => opt.MapFrom(src => new AreaDto { AreaId = src.AreaId, Longitude = src.Longitude, Latitude = src.Latitude }));Dado:
new SemModel(){SemId =1, AreaId =null, Longitude=null, Latitude=null}Rendimiento esperado:
new SemDto(){SemId = 1, Area = new Area(){ AreaId =null, Longitude =null, Latitude =null}}Salida real:
new SemDto(){SemId = 1, Area = null}Otro intento 1
.ForPath(dest => dest.Area.AreaId, opt => opt.MapFrom(src => src.AreaId)) .ForPath(dest => dest.Area.Longitude, opt => opt.MapFrom(src => src.Longitude)) .ForPath(dest => dest.Area.Latitude, opt => opt.MapFrom(src => src.Latitude));Todavía no hay suerte. ¡Bien!
cfg.CreateMap<SemDto, SemModel>().IncludeMembers(s=>s.Area).ReverseMap(); cfg.CreateMap<AreaDto, SemModel>().ForMember(d=>d.SemId, o=>o.Ignore()).ReverseMap(); Utiliza desdoblamiento . ForPath también funciona.