首页 > 解决方案 > AutoMapper 内联忽略

问题描述

我正在使用 Auto Mapper 将源映射到目标对象,我已经像这样配置了我的映射器:

Mapper.Initialize(cfg => {    
   cfg.CreateMap< SourceModel, DestModel>();   
}

这个源和目标对象映射在很多地方都被使用,现在在某些情况下,我不得不忽略源模型字段之一,但不是所有地方。我可以这样做:

 CreateMap< SourceModel, DestModel>()
   .ForMember(x => x.CreatedDateTime, opt => opt.Ignore());

但这将忽略所有场景的 CreatedDateTime 属性,所以我只想内联。

 Mapper.Map< DestModel>(sourceObject); //Here I want to ignore one property.

请帮助我如何实现这一目标。

标签: c#automapper

解决方案


听起来你需要条件映射。

这个关于 SO 的答案显示了如何使用它,并且可以在此处找到文档。

示例用法:

Mapper.CreateMap<SourceModel, DestModel>()
 .ForMember(dest => dest.CreatedDateTime, opt => opt.Condition(source => source.Id == 0))

推荐阅读