簡體   English   中英

C#automapper嵌套集合

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM