如何使用 Automapper 避免复杂结构的 foreach [关闭]

Posted

技术标签:

【中文标题】如何使用 Automapper 避免复杂结构的 foreach [关闭]【英文标题】:How to use Automapper toavoid foreach for complex structure [closed] 【发布时间】:2022-01-07 01:27:11 【问题描述】:

我正在尝试使用自动映射器映射源实例和目标实例,

我有一个我创建的示例代码。第 82 行我正在尝试更改和使用自动映射器。是否可以在那里使用自动映射器。

https://dotnetfiddle.net/bzp9H7

【问题讨论】:

【参考方案1】:

是的,您可以映射一个列表,但在查看您的代码后,我认为您不需要为 destinationArray 字段提供列表或数组。如果需要将其用作数组,只需在destinationArray 之后使用adding.First()

  public static IMapper CreateGroboBookingMapper()
    
        var config = new MapperConfiguration(cfg =>
        
            cfg.AllowNullDestinationValues = true;

            cfg.CreateMap<Booking, DestinationBooking>()
        .ForMember(dest => dest.processTypeField, opt => opt.MapFrom(src => src.processTypeField))
        .ForMember(dest => dest.travelDate, opt => opt.MapFrom(src => src.Trip.Voyages.FirstOrDefault().DepartureDate))
        .ForMember(dest => dest.destinationArrayField, opt => opt.MapFrom(a => new destinationArray() 
            
              // Here you can add destinationArray models parameters
            arrivalStationIdField= a.Trip.Voyages.Select(x => x.arrivalStationId).FirstOrDefault().ToString(),
            extraField = *************
        ));
       
        );

        return config.CreateMapper();
    

这是调试的结果,因为我尝试了一个值:

【讨论】:

以上是关于如何使用 Automapper 避免复杂结构的 foreach [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

使用Automapper优化相关子查询

如何在 AutoMapper 中映射通用结构类型

AutoMapper用法

如何使用automapper映射与多个表的数据集

如何使用automapper映射与多个表的数据集

AutoMapper的使用