集合类型的映射属性

Mapping properties that are collection types

假设我在业务层中有一个这样的 classes:

Namespace Business
{
public class Order
    {
        public int ID { get; set; }
        public List <OrderItem> OrderItems { get; set; }
    }

public class OrderItem
    {
        public int ID { get; set; }
        public int ProductID { get; set; }
    }
}

and classes like this in a Model layer:

Namespace Model
{
public class OrderModel
    {
        public int ID { get; set; }
        public List <OrderItem> OrderItems { get; set; }
    }

public class OrderItemModel
    {
        public int ID { get; set; }
        public int ProductID { get; set; }
    }
}

如何将业务层中的订单 class 映射到模型层中的订单 class?我试过这个:

Mapper.Initialize(cfg => 
                {
                    cfg.CreateMap<Order, OrderModel>();
                    cfg.CreateMap<OrderModel, Order>();
                });

因为订单 class 中的 OrderItem 属性 而不起作用。如果我删除 OrderItem 属性 然后它工作。如何在映射中包含订单项 属性。

我使用的是 Automapper 6.02 版。

没有理由不自动映射集合,因为名称匹配。到目前为止我明白了,你错过了 OrderItemOrderItemModel

之间的映射
Mapper.Initialize(cfg => 
            {
                cfg.CreateMap<OrderItem, OrderItemModel>();
                cfg.CreateMap<OrderItemModel, OrderItem>();
                cfg.CreateMap<Order, OrderModel>();
                cfg.CreateMap<OrderModel, Order>();                                 
            });