Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 映射属于集合类型的属性_C#_Automapper_Automapper 6 - Fatal编程技术网

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();