[英]AutoMapper for nested item collection
I have models below: 我有以下型号:
public class Order
{
public long OrderId { get; set; }
public ICollection<Order_OrderItem> Order_OrderItems { get; set; }
}
public class Order_OrderItem
{
public long OrderId { get; set; }
public virtual Order Order { get; set; }
public int OrderItemId { get; set; }
public virtual OrderItem OrderItem { get; set; }
}
And I create DTO below: 我在下面创建DTO:
public class OrderDto
{
public long OrderId { get; set; }
public IEnumerable<OrderItemDto> OrderItems { get; set; }
}
How could I map Order
to OrderDto
? 如何将Order
映射到OrderDto
?
I got error with below: 我有以下错误:
configuration.CreateMap<Order, OrderDto>()
.ForMember(desc => desc.OrderItems,
opt => opt.MapFrom(src => src.Order_OrderItems));
I checked other related issues, and suggestions are related with map property from one to another, but my OrderItems
is a collection property. 我检查了其他相关问题,并且建议与地图属性之间相互关联,但是我的OrderItems
是集合属性。 How could I map it? 我该如何映射?
Any help would be appreciated. 任何帮助,将不胜感激。
Change configuration like below: 更改配置,如下所示:
configuration.CreateMap<Order_OrderItem, OrderItemDto>();
configuration.CreateMap<Order, OrderDto>()
.ForMember(desc => desc.OrderItems,
opt => opt.MapFrom(src => src.Order_OrderItems));
The OrderItems
in OrderDto
will be null
when checking the result: 检查结果时, OrderDto
的OrderItems
将为null
:
var result = ObjectMapper.Map<OrderDto>(order);
Map from OrderItem
to OrderItemDto
: 从OrderItem
映射到OrderItemDto
:
configuration.CreateMap<OrderItem, OrderItemDto>();
Map from Order
to OrderDto
: 从Order
映射到OrderDto
:
configuration.CreateMap<Order, OrderDto>()
.ForMember(dest => dest.OrderItems,
opt => opt.MapFrom(src => src.Order_OrderItems.Select(o => o.OrderItem)));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.