2017-05-12 2 views
0

내가 비즈니스 계층에서이 같은 수업을 말 :매핑 속성

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; } 
    } 
} 
내가 모델 층에서 주문 클래스에 비즈니스 계층의 순서 클래스를 매핑 할 방법

? 나는 이것을 시도했다 :

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

Order 클래스의 OrderItem 속성 때문에 작동하지 않는다. OrderItem 속성을 제거하면 작동합니다. 매핑에 orderitem 속성을 포함하려면 어떻게해야합니까?

Automapper 버전 6.02를 사용 중입니다.

답변

1

이름이 일치하므로 컬렉션이 자동으로 매핑되지 않아도됩니다. 지금까지 당신이 OrderItemOrderItemModel

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

감사 사이의 매핑을 놓친 참조하십시오. 나는 그것이 그렇게 단순하다는 것을 깨닫지 못했다. 2 분 안에 답을 표시 할 것입니다 (순간에 표시하지 않습니다) – w0051977

+0

ReverseMap을 사용하는 것이 좋습니다 : cfg.CreateMap (). ReverseMap(); –