gpt4 book ai didi

AutoMapper:ForMember 和 ForSourceMember 之间有什么区别?

转载 作者:行者123 更新时间:2023-12-02 11:29:41 24 4
gpt4 key购买 nike

我是 AutoMapper 的新手,所以这可能是初学者的问题。我搜索过,但没有看到这个讨论。创建 map 时,ForMember 和 ForSourceMember 方法有什么区别:

            Mapper.CreateMap<Role, RoleDto>()
.ForMember(x => x.Users, opt => opt.Ignore())
.ForSourceMember(x => x.Users, opt => opt.Ignore());

我正在维护其他人编写的代码。在某些地方,我看到 ForMember,在其他地方看到 ForSourceMember,如上所示,两者都在一处。

两者有什么区别?

预先感谢您的帮助。

最佳答案

查看方法签名。在...

Mapper.CreateMap<Role, RoleDto>()
.ForMember(x => x.Users, opt => opt.Ignore())
.ForSourceMember(x => x.Users, opt => opt.Ignore());

... ForMember是一种期望 Expression<Func<RoleDto>> 的方法名为 destinationMember 的参数,而ForSourceMember预计 Expression<Func<Role>>名为 sourceMember 的参数。所以

  • ForMember配置目标类型的成员。
  • ForSourceMember配置源类型的成员。

在您的情况下,源类型和目标类型都有成员 UserId ,因此调用看起来相同,但实际上并非如此。他们应该同样的事情,但有趣的是ForSourceMember似乎对忽略成员没有任何影响。也许这是一个错误。

关于AutoMapper:ForMember 和 ForSourceMember 之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33660442/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com