集合类型的映射属性
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 版。
没有理由不自动映射集合,因为名称匹配。到目前为止我明白了,你错过了 OrderItem
和 OrderItemModel
之间的映射
Mapper.Initialize(cfg =>
{
cfg.CreateMap<OrderItem, OrderItemModel>();
cfg.CreateMap<OrderItemModel, OrderItem>();
cfg.CreateMap<Order, OrderModel>();
cfg.CreateMap<OrderModel, Order>();
});
假设我在业务层中有一个这样的 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 版。
没有理由不自动映射集合,因为名称匹配。到目前为止我明白了,你错过了 OrderItem
和 OrderItemModel
Mapper.Initialize(cfg =>
{
cfg.CreateMap<OrderItem, OrderItemModel>();
cfg.CreateMap<OrderItemModel, OrderItem>();
cfg.CreateMap<Order, OrderModel>();
cfg.CreateMap<OrderModel, Order>();
});