Смущен использованием AutoMapper - PullRequest
1 голос
/ 25 февраля 2011

Я прочитал несколько статей, и я видел видео с MvcConf 1, в котором Джимми Богард демонстрирует использование AutoMapper, но я все еще в замешательстве.

У меня есть класс User POCO, который имеет несколько свойств. У меня также есть класс RegisterViewModel, который содержит подмножество свойств класса User. Теперь, когда пользователь регистрируется, он заполняет данные в пустой экземпляр RegisterViewModel, передаваемый представлению. Затем эти данные должны быть сопоставлены с экземпляром пользователя, который будет добавлен в базу данных, но у пользователя есть определенные свойства, которые необходимо ввести как значения по умолчанию (что-то вроде RegistrationDate, которое должно быть назначено для DateTime.Now). Что я буду делать в этом случае?

Кроме того, допустим, я обновляю экземпляр пользователя. Сначала мне нужно получить данные из базы данных и сопоставить их с классом UpdateUserViewModel. Затем, когда пользователь отправляет изменения, они должны быть сопоставлены с экземпляром пользователя. В этом случае мне нужно сделать две отдельные записи Mapper.CreateMap <> () в моем файле конфигурации или AutoMapper сделает это автоматически для меня?

Полагаю, пока это все, ваша помощь будет высоко оценена! :)

1 Ответ

5 голосов
/ 25 февраля 2011

Для первого сценария вы можете определить эти отсутствующие свойства в вашем отображении:

Mapper
    .CreateMap<RegisterViewModel, User>()
    .ForMember(
        dest => dest.RegistrationDate,
        opt => opt.UseValue(DateTime.Now)
    );

Для второго сценария вам понадобятся два отдельных отображения, потому что AutoMapper не определяет автоматическиНаправленные отображения:

Mapper.CreateMap<UpdateUserViewModel, User>();
Mapper.CreateMap<User, UpdateUserViewModel>();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...