我有一个目标类,如下所示
public class Order
{
public string OrderId { get; set; }
public List<Delivery> Deliveries { get; set;}
}
public class Delivery
{
public string ProductName { get; set; }
}
我要从下面的源类
中映射上面类中的ProductNamepublic class OrderDTO
{
public string OrderId { get; set; }
public List<OrderDelivery> Deliveries { get; set; }
}
public class OrderDelivery
{
public List<OrderDeliveryDetails> ProductDeliveryDetails { get; set; }
}
public class OrderDeliveryDetails
{
public string ProductName { get; set; }
}
如何使用Automapper执行此操作
(注意:请不要与List<OrderDeliveryDetails>
课程中的OrderDelivery
混淆。这是因为,它也可能包含子产品,但我只需要接受父ProductName
0} p>
答案 0 :(得分:0)
好吧,如果通过采用父ProductName你的意思是第一个,你可以尝试这些方面的东西(否则我可能会误解你的问题,你可以忽略我的答案):
public class AutoMapperConfiguration : Profile
{
private readonly IConfiguration _mapper;
public AutoMapperConfiguration(IConfiguration mapper)
{
_mapper = mapper;
}
protected override void Configure()
{
_mapper.CreateMap<OrderDTO, Order>
.ForMember(d => d.OrderId, o => o.MapFrom(s => s.OrderId))
.ForMember(d => d.Deliveries, o => o.MapFrom(s => s.Deliveries));
_mapper.CreateMap<OrderDelivery, Delivery>
.ForMember(d => d.ProductName, o => o.MapFrom(s => s.ProductDeliveryDetails.First().ProductName));
}
}
然后简单
_mapper.Map(orderDto);
(如果您拥有使用AutoMapper所需的所有连线,请执行此操作)。