AutoMapper .AfterMap () против .ForMember () - PullRequest
0 голосов
/ 21 марта 2020

Я столкнулся с проблемой, когда я мог использовать метод .AfterMap () или метод .ForMember () из AutoMapper. Я немного исследовал, но не нашел никакой информации об этом. В чем разница между ними или когда вы будете использовать один над другим?

AfterMap :

.AfterMap((src, dest) => dest.SomeDestinationProperty = src.SomeSourceProperty);

ForMember :

.ForMember(
    dest => dest.SomeDestinationProperty,
    opt => opt.MapFrom(src => src.SomeSourceProperty)
);

1 Ответ

2 голосов
/ 21 марта 2020

AfterMap - это код, который выполняется после того, как AutoMaper выполнит свою работу. AutoMapper ничего не знает об этом (это черный ящик) и не может использовать какие-либо логики c внутри него.

ForMember определяет отображение для одного мэбмера, но настоящее волшебство c происходит при использовании с MapFrom. В этой комбинации AutoMapper точно знает, как сопоставить один элемент другому, и он может автоматически создавать обратное сопоставление. Это также позволяет вам использовать ProjectTo в Linq, что приведет к более оптимальным запросам (особенно если ваш DTO включает только несколько полей в вашей сущности (ях)).

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