0

我的课程定义如下

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

}

我必须从源映射到目的地。我必须合并源中的所有集合并将它们映射到目标。

我已经定义了我的映射如下。但是这段代码并没有帮助我。它不是合并所有集合,而是仅映射最后一个 (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));

请在这种情况下帮助我。

提前致谢。

4

1 回答 1

0

我只想在一次调用.Concat中映射您想要映射的每个列表:.ForMember

Mapper.CreateMap<Source, Destination>()
    .ForMember(dest => dest.Drivers, opt => opt.MapFrom(src => src.LendingLossDrivers
        .Concat(src.OtherDrivers)
        .Concat(src.UnreportedDrivers)));
于 2012-05-30T12:48:01.427 回答