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

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

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

https://dotnetfiddle.net/bzp9H7

【问题讨论】:

    标签: c# asp.net-core .net-core mapping automapper


    【解决方案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();
        }
    

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

    【讨论】:

      猜你喜欢
      • 2016-05-05
      • 2013-04-29
      • 2020-05-11
      • 2016-12-02
      • 1970-01-01
      • 2011-05-19
      • 1970-01-01
      • 1970-01-01
      • 2019-06-24
      相关资源
      最近更新 更多