Проблемы с Automapper Map.CreateMap без пользовательского сопоставления - PullRequest
2 голосов
/ 17 августа 2011

Я пытаюсь использовать AutoMapper, не прибегая к пользовательскому отображению.

У меня есть два объекта, определенных следующим образом с использованием одного и того же интерфейса

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

        ...
    }

Позже, когда я пытаюсьчтобы использовать эту карту, я получаю обратно объект, но в нем ничего нет.

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

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

dto.OrderName = empty string!?!

ОБНОВЛЕНИЕ : Я использую карту, как это на самом деле ... Извините, что изменил параметры.Во всяком случае, до сих пор не работает.

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

1 Ответ

0 голосов
/ 17 августа 2011

Подпись Mapper.Map:

Mapper.Map<TSource, TDestination>

Поскольку вы пытаетесь создать здесь заказ с помощью OrderViewModel, модель представления является источником, а заказ является назначением, попробуйте заменить общие аргументы на:

var dto = Mapper.Map<OrderViewModel, Order)(vm);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...