开发者

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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜