gpt4 book ai didi

c# - AutoMapper 的 Ignore() 在使用 ForSourceMember 时不起作用?

转载 作者:太空狗 更新时间:2023-10-29 21:34:06 25 4
gpt4 key购买 nike

我试图忽略来自源类型的属性。我定义了这样的映射:

var map = AutoMapper.Mapper.CreateMap<Article, IArticle>();
map.ForSourceMember(s => s.DateCreated, opt => opt.Ignore());
map.ForSourceMember(s => s.DateUpdated, opt => opt.Ignore());

当我调用 Map 函数时,

AutoMapper.Mapper.Map(article, articlePoco);

目的地的属性无论如何都会更新。我使用的是从 NuGet 下载的最新稳定版本。

知道为什么这不起作用吗?

我发现了与此类似的问题,但没有附上答案。 【提问】:AutoMapper's Ignore() not working?

最佳答案

如果您要忽略的属性仅存在于源对象中,那么您可以将 MemberList.Source 与选项方法 DoNotValidate() 结合使用。见下文:

CreateMap<IArticle, Article>(MemberList.Source)
map.ForSourceMember(src => src.DateCreated, opt=> opt.DoNotValidate());
map.ForSourceMember(src => src.DateUpdated, opt => opt.DoNotValidate());

如果您正在使用 AssertConfigurationIsValid 并且想要忽略某些源属性的验证,这是完美的。

关于c# - AutoMapper 的 Ignore() 在使用 ForSourceMember 时不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20267098/

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