我的课程定义如下
Source {
public List<Driver> UnreportedDrivers { get; set; } // count 1
public List<Driver> LendingLossDrivers { get; set; } // count 2
public List<Driver> OtherDrivers { get; set; } // count 1
}
Destination {
public List<Driver> Drivers { get; set; } // expected count = 4 after mapping
}
我必须从源到目的地进行映射。 我必须合并来自源的所有集合并将它们映射到Destination。
我已将我的映射定义如下。但这段代码并没有帮助我。 它不是合并所有集合,而是映射最后一个(UnreportedDrivers)覆盖顶部集合。
AutoMapper.Mapper.CreateMap<ServiceModel.MacReconciliationResponse, MacProcessContext>()
.ForMember(destination => destination.Drivers, source => source.MapFrom(s => s.OtherDrivers))
.ForMember(destination => destination.Drivers, source => source.MapFrom(s => s.LendingLossDrivers))
.ForMember(destination => destination.Drivers, source => source.MapFrom(s => s.UnreportedDrivers));
请在这种情况下帮助我。
提前致谢。
答案 0 :(得分:0)
我只想.Concat
您要在一个.ForMember
电话中映射的每个列表:
Mapper.CreateMap<Source, Destination>()
.ForMember(dest => dest.Drivers, opt => opt.MapFrom(src => src.LendingLossDrivers
.Concat(src.OtherDrivers)
.Concat(src.UnreportedDrivers)));