C# 映射属于集合类型的属性
假设我在业务层中有这样一个类:C# 映射属于集合类型的属性,c#,automapper,automapper-6,C#,Automapper,Automapper 6,假设我在业务层中有这样一个类: 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 in
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; }
}
}
名称空间业务
{
公共阶级秩序
{
公共int ID{get;set;}
公共列表OrderItems{get;set;}
}
公共类OrderItem
{
公共int ID{get;set;}
public int ProductID{get;set;}
}
}
模型层中的类如下所示:
名称空间模型
{
公共类排序模型
{
公共int ID{get;set;}
公共列表OrderItems{get;set;}
}
公共类OrderItemModel
{
公共int ID{get;set;}
public int ProductID{get;set;}
}
}
如何将业务层中的订单类映射到模型层中的订单类?我试过这个:
Mapper.Initialize(cfg =>
{
cfg.CreateMap<Order, OrderModel>();
cfg.CreateMap<OrderModel, Order>();
});
Mapper.Initialize(cfg=>
{
CreateMap();
CreateMap();
});
由于Order类中的OrderItem属性,它无法工作。如果我删除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>();
});
Mapper.Initialize(cfg=>
{
CreateMap();
CreateMap();
CreateMap();
CreateMap();
});
谢谢。我没有意识到事情有那么简单。将在两分钟内标记答案(目前不允许我标记),我还建议使用ReverseMap:cfg.CreateMap().ReverseMap();