[英]C# automapper nested collections
我有一個像這樣的簡單模型:
public class Order{
public int Id { get; set; }
... ...
public IList<OrderLine> OrderLines { get; set; }
}
public class OrderLine{
public int Id { get; set; }
public Order ParentOrder { get; set; }
... ...
}
我用Automapper做的是這樣的:
Mapper.CreateMap<Order, OrderDto>();
Mapper.CreateMap<OrderLine, OrderLineDto>();
Mapper.AssertConfigurationIsValid();
它拋出一個異常,說:“OrderDto中的OrderLineDtos屬性未映射,添加自定義映射...”當我們在Domain和DomainDto中使用自定義語法時,我如何指定OrderDto中的OrderLineDtos集合對應於OrderLines有序嗎?
謝謝
它以這種方式工作:
Mapper.CreateMap<Order, OrderDto>()
.ForMember(dest => dest.OrderLineDtos, opt => opt.MapFrom(src => src.OrderLines));
Mapper.CreateMap<OrderLine, OrderLineDto>()
.ForMember(dest => dest.ParentOrderDto, opt => opt.MapFrom(src => src.ParentOrder));
Mapper.AssertConfigurationIsValid();
只要名稱匹配,嵌套集合就可以工作。 在您的DTO中,您的集合名稱為“OrderLineDtos”,但在Order對象中,它只是“OrderLines”。 如果刪除OrderLineDtos和ParentOrderDto屬性名稱的“Dtos”部分,它應該全部匹配。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.