8

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

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 的 Ignore() 不起作用?

4

2 回答 2

8

更改映射以使用 ForMember:

map.ForMember(s => s.DateCreated, opt => opt.Ignore());
map.ForMember(s => s.DateUpdated, opt => opt.Ignore());
于 2013-11-28T15:45:22.303 回答
6

如果您要忽略的属性仅存在于源对象中,那么您可以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并且想要忽略某些源属性的验证,这是完美的。

于 2019-10-27T05:05:57.633 回答