2017-05-21 115 views
0

我是新来的automapper,我试图非常简单的地图。我有以下课程,我'试图将人物模型映射到人。 它一直在订单失败。对不起,如果这个愚蠢的,但我无法弄清楚。我删除了订单上的所有属性以查看出现了什么问题使用自动映射器的错误映射类型

public class Person 
{ 
    public Person() 
    { 
     Orders = new List<Orders>(); 
    } 
    public string FirstName { get; set; } 
    public string LastName { get; set; } 
    public int Id { get; set; } 


    public List<Orders> Orders { get; set; } 
} 

public class Orders 
{ 
    public string OrderName { get; set; } 

} 

public class PersonModel 
{ 
    public PersonModel() 
    { 
     Orders = new List<OrderModel>(); 
    } 
    public string FirstName { get; set; } 
    public string LastName { get; set; } 
    public int Id { get; set; } 
    public List<OrderModel> Orders { get; set; } 
} 

public class OrderModel 
{ 
     public string OrderName { get; set; } 

} 

I have the mapper defined as Mapper.Initialize(x => x.CreateMap<PersonModel, Person>()); 
The error that I get is: 
Error mapping types. 

Mapping types: 
PersonModel -> Person 
PersonModel -> Person 

Type Map configuration: 
PersonModel -> Person 
PersonModel -> Person 

Property: 
Orders 
+0

您还需要为订单创建地图。您必须拥有Person和PersonModel中的订单实体。所以你需要在Person和PersonModel中创建一个Map for Orders实体。 AutoMapper在对象内部递归地查找地图。它无法找到订单的地图。因此它失败了。 – Venky

回答

1

在订单和OrderModel之间创建映射。

Mapper.CreateMap<Orders, OrderModel>().ReverseMap();