0
AutoMapper 프레임 워크를 처음 사용했습니다. 하나의 객체에 매핑되어야하는 3 ~ 5 개의 복잡한 객체가 있습니다.AutoMapper를 사용하여 3 개 또는 N 개의 복잡한 개체를 하나의 개체로 매핑하는 방법
예를 들어, LaptopInfo 객체에는 4 개의 객체 모두에서 채워 져야하는 필드가 있으므로 LipInfo에 MemoryCardInfo를 매핑해야합니다.
어떻게 AutoMapper를 사용하여 달성 할 수 있습니까? 4 개의 객체에 .ForMember를 사용하여 CreateMap을 수행 할 수있는 답변을 찾을 수 없습니다. 당신은 기존 개체에 매핑 할 수있는 오버로드를 사용하여, 당신이 그 조합 각각에 대한 매핑을 만드는 경우에 따라 감사
업데이트 된 코드
public class AutoMapperConfig
{
Mapper.Initialize(x =>
{
x.AddProfile<chipInfoMapperProfile>();
x.AddProfile<(hardDiskInfoMapperProfile>();
x.AddProfile<monitorInfoMapperProfile>();
x.AddProfile<memoryCardInfoMapperProfile>();
});
}
public class chipInfoMapperProfile : Profile
{
protected override void Configure()
{
Mapper.CreateProfile(Profiles.ChipProfileName).CreateMap<chipInfo, laptopInfo>()
.ForMember(x => x.LapTopChipProperty, opt => opt.MapFrom(source => source.ChipProperty));
}
}
public class hardDiskInfoMapperProfile : Profile
{
protected override void Configure()
{
Mapper.CreateProfile(Profiles.hardDiskProfileName).CreateMap<hardDiskInfo, laptopInfo>()
.ForMember(x => x.LaptopHardDiskProperty, opt => opt.MapFrom(source => source.HardDiskProperty));
}
}
public class monitorInfoMapperProfile: Profile
{
protected override void Configure()
{
Mapper.CreateProfile(Profiles.monitorInfoProfileName).CreateMap<monitorInfo, laptopInfo>()
.ForMember(x => x.LaptopMonitorInfoProperty, opt => opt.MapFrom(source => source.MonitorInfoProperty));
}
}
답장을 보내 주셔서 감사합니다 그러나 그것은 내가하고 싶은 일을하지 않습니다. 원래 질문에서 코드를 업데이트했습니다. 각 프로파일에서 사용되지 않는 속성을 무시해야한다는 오류가 발생합니다. 문제는 내가 모든 것을 한 객체 전체에 맵핑하지 않는다는 것입니다. 마지막 프로필에 매핑 된 것이 대상 개체 만 채 웁니다. 다른 모든 것은 기본값을 가져옵니다. – AllSpark