C#automapper嵌套集合

我有一个像这样的简单模型:

public class Order{ public int Id { get; set; } ... ... public IList OrderLines { get; set; } } public class OrderLine{ public int Id { get; set; } public Order ParentOrder { get; set; } ... ... } 

我用Automapper做的是这样的:

  Mapper.CreateMap(); Mapper.CreateMap(); Mapper.AssertConfigurationIsValid(); 

它抛出一个exception,说:“OrderDto中的OrderLineDtos属性未映射,添加自定义映射…”当我们在Domain和DomainDto中使用自定义语法时,我如何指定OrderDto中的OrderLineDtos集合对应于OrderLines有序吗?

谢谢

它以这种方式工作:

  Mapper.CreateMap() .ForMember(dest => dest.OrderLineDtos, opt => opt.MapFrom(src => src.OrderLines)); Mapper.CreateMap() .ForMember(dest => dest.ParentOrderDto, opt => opt.MapFrom(src => src.ParentOrder)); Mapper.AssertConfigurationIsValid(); 

只要名称匹配,嵌套集合就可以工作。 在您的DTO中,您的集合名称为“OrderLineDtos”,但在Order对象中,它只是“OrderLines”。 如果删除OrderLineDtos和ParentOrderDto属性名称的“Dtos”部分,它应该全部匹配。