Automapper: частичное отображение - PullRequest
14 голосов
/ 21 марта 2011

Я использую Automapper для передачи данных из objectA в objectB

classe ObjectA
{
   string Title;
   string Summary;
}

classe ObjectB
{
   string Title;
   string Summary;
   IAddress Address;
}

Я создал этот вид отображения между двумя объектами

AutoMapper.Mapper.CreateMap<IObectA, IObjectB>()
      .ForMember(dest => dest.Title,           src => src.MapFrom(s => s.Title))
      .ForMember(dest => dest.Summary,         src => src.MapFrom(s => s.Summary))
      .ForMember(dest => dest.Address,         src => src.Ignore())

Я создаю свой ObjectB и заполняю все егосвойства, включая адрес

Когда я вызываю маппер, я ожидал, что он переопределит заголовок и сводку и проигнорирует адрес

ObjectB = Mapper.Map<IObjectA, IObjectB>(objectA); 

На самом деле, это бросок и исключение для адреса.

Что я делаю не так?

[ОБНОВЛЕНИЕ] Чтобы выразить это по-другому, у меня есть мой объект B, и я хочу обновить его часть данными, поступающими из ObjectA.Когда я говорю «Игнорировать», я имею в виду оставить данные такими, какие они уже есть

1 Ответ

34 голосов
/ 21 марта 2011

Я нашел решение.

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

Mapper.Map<IObjectA, IObjectB>(objectA, ObjectB ); 

@ JoDG, Спасибо за вашу помощь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...