Problems with Automapper Map.CreateMap without Custom Mapping
I'm trying to use AutoMapper without resorting to custom mapping.
I have two objects defined as follows using the same interface
public class Order : IOrder
...
public class OrderViewModel : IOrder
...
My Global.asax, looks like this:
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>();
...
}
Later on, when I try to use this map, I get an object back, but it has nothing in it.
OrderViewModel vm = new OrderViewModel();
vm.OrderName = "Test";
var dto = Mapper.Map<Order, OrderViewModel)(vm);
dto.OrderName = empty string!?!
UPDATE: I use the map like this actually... Sorry reversed the params. Anyhow, still doesn't work.
var dto = Mapper.Map<OrderViewModel, Order)(vm);
The Mapper.Map signature is
Mapper.Map<TSource, TDestination>
As you are trying to create an Order here there from an OrderViewModel the view model is the source and the Order is the destination, try swapping the generic arguments to:
var dto = Mapper.Map<OrderViewModel, Order)(vm);
精彩评论