2011-08-17 1 views
2

사용자 지정 매핑을 사용하지 않고 AutoMapper를 사용하려고합니다.Automapper 관련 문제 Map.CreateMap without Custom Mapping

동일한 인터페이스

public class Order : IOrder 
... 

public class OrderViewModel : IOrder 
... 

내에서 Global.asax를 사용하여 다음과 같이 저는 두 개체는 정의한 다음과 같습니다

protected void Application_Start() 
    { 
     Mapper.CreateMap<Order, OrderViewModel>(); 
     Mapper.CreateMap<OrderViewModel, Order>(); 

     Mapper.CreateMap<IOrder, OrderViewModel>(); 
     Mapper.CreateMap<OrderViewModel, IOrder>(); 

     Mapper.CreateMap<Order, IOrder>(); 
     Mapper.CreateMap<IOrder, Order>(); 

     Mapper.CreateMap<IOrder, IOrder>();   

     ... 
    } 

을 나중에, 나는이지도를 사용하려고하면, I 객체를 다시 가져 오지만 그 안에 아무것도 없다.

OrderViewModel vm = new OrderViewModel(); 
vm.OrderName = "Test"; 

var dto = Mapper.Map<Order, OrderViewModel)(vm); 

dto.OrderName = empty string!?! 

UPDATE : 나는 죄송 PARAMS 반전 ...이 실제로 같은지도를 사용합니다. 아무튼, 여전히 작동하지 않습니다.

var dto = Mapper.Map<OrderViewModel, Order)(vm); 
+0

OrderViewModel 및 Order 모두 OrderName이라는 속성이 있습니까? 또한, 당신이해야한다고 생각 : Mapper.CreateMap (); – Paul

+0

예, 둘 다 OrderName이 있습니다. 인터페이스는 OrderName을 지정하므로 두 클래스가이를 구현합니다. – 010110110101

+0

실제 수업을 게시 할 수 있습니까? –

답변

0

Mapper.Map 서명이

Mapper.Map<TSource, TDestination> 

당신이보기 모델은 소스 인 OrderViewModel에서 여기 저기 주문을 만들려고으로하고 주문이 대상이며, 일반 교환 시도 인수 :

var dto = Mapper.Map<OrderViewModel, Order)(vm); 
+0

죄송합니다 - 유형 -o입니다. 나는 그것을 실제로 다른 방향으로 가졌습니다. – 010110110101