Двунаправленное сопоставление свойств AutoMapper - PullRequest
1 голос
/ 05 ноября 2019

Вот что я делаю.

Mapper.CreateMap<AViewModel, AModel>()
    .ForMember(x => x.Foo, x => x.MapFrom(src => src.Bar))
     ...
    .IgnoreAllNonExisting()
    .ReverseMap()
    .ForMember(x => x.Bar, x => x.MapFrom(src => src.Foo))
     ...
    .IgnoreAllNonExisting();

Но в моем случае у меня слишком много свойств для сопоставления.

И кажется, что в нем есть повторяющиеся строки, только меняющиеся* Порядок каждого свойства1012 *)

* Версия AutoMapper - 3.3.1

1 Ответ

0 голосов
/ 05 ноября 2019

AutoMapper поддерживает сопоставление в соответствии с соглашением, поэтому оно естественным образом сопоставляет свойство Foo в AViewModel со свойством Foo в AModel, поскольку они имеют одно и то же имя. Кроме того, вам нужно вызывать .IgnoreAllNonEsisting () только один раз.

Решение состоит в том, чтобы сопоставить данные для Foo из AViewModel и Foo в AModel и то же самое для свойства Bar, так что вам нужно будет только сделатьследующее:

Mapper.CreateMap<AViewModel, AModel>()
    .IgnoreAllNonExisting()
    .ReverseMap();

Я рекомендую прочитать документацию для начала для AutoMapper

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