使用AutoMapper最新版本,调用Mapper.Map重载时如何排除指定属性映射?
解决AutoMapper单次映射中排除特定属性的问题
嘿,刚好我对AutoMapper最新版本的用法很熟悉,你现在用的Mapper.Map<TypeSource, TypeDest>(source, dest);这种调用方式,要在单次映射里排除特定属性其实很简单——只需要在第三个参数位置传入一个配置选项的委托就行。
最新版AutoMapper提供了IMappingOperationOptions来支持单次映射的临时配置,其中就包含排除属性的方法。直接看代码示例:
// 排除目标类型的某个特定属性 Mapper.Map<TypeSource, TypeDest>(source, dest, opts => opts.Exclude(dest => dest.PropertyToExclude));
如果需要排除多个属性,直接链式调用Exclude方法就可以:
Mapper.Map<TypeSource, TypeDest>(source, dest, opts => opts.Exclude(dest => dest.FirstProperty) .Exclude(dest => dest.SecondProperty));
这个方法的好处是只作用于当前这次映射,不会修改你全局的AutoMapper配置,完全适配你现在的调用方式,不用调整之前的Profile或者全局映射规则。
内容的提问来源于stack exchange,提问作者radders
相关产品推荐
相关产品推荐

