我如何使用AutoMapper转换一个可空的十进制?



所以我的代码显示为:

CreateMap<EntityOne, ModelOne>()
.ForPath(dest => dest.Field1, opt => opt.MapFrom(src => src.Field1))

两个Field1都是可空的小数,我希望能够在映射时将值转换为2位小数。我认为我最好的尝试是:

CreateMap<EntityOne, ModelOne>()
.ForPath(dest => dest.Field1, opt => opt.MapFrom(src => src.Field1.HasValue ? Math.Round((decimal)src.Field1, 2, MidpointRounding.AwayFromZero) : null))
我得到的错误是:

方法'IPathConfigurationExpression<EntityOne,>. mapfrom (Expression<EntityOne,>>)'的类型参数不能从用法中推断出来。尝试显式指定类型参数。

我很确定你可以通过将Math.Round的结果转换为可空的小数来解决这个问题:

opt.MapFrom(src => src.Field1.HasValue 
? (decimal?)Math.Round((decimal)src.Field1, 2, MidpointRounding.AwayFromZero) 
: null)
这样,调用应该能够从 的用法中推断出

相关内容

最新更新