AutoMapper .AfterMap()与.ForMember()

问题描述 投票:0回答:1

我遇到了一个问题,我可以使用AutoMapper中的.AfterMap()方法或.ForMember()方法。我进行了一些研究,但未找到任何相关信息。它们之间有什么区别,或者您何时将其用于另一种?

AfterMap

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

ForMember

.ForMember(
    dest => dest.SomeDestinationProperty,
    opt => opt.MapFrom(src => src.SomeSourceProperty)
);
c# automapper
1个回答
2
投票

AfterMap是在AutoMaper完成工作后执行的代码。 AutoMapper对它一无所知(它是一个黑匣子),并且不能在其中使用任何逻辑。

ForMember指定单个成员的映射,但真正的魔力与MapFrom一起使用时发生。在这种组合中,AutoMapper确切地知道如何将一个成员映射到另一个成员,并且它可以自动创建反向映射。它还允许您在Linq中使用ProjectTo,这将导致更优化的查询(尤其是如果您的DTO仅在您的实体中仅包含少数几个字段)。

© www.soinside.com 2019 - 2024. All rights reserved.