我正在将我们的自动化库从版本3更新到版本5.2.0,我收到此错误
System.InvalidOperationException: System.InvalidOperationException: No coercion operator is defined between types 'System.String' and 'System.Int32'
在两行复杂对象的映射设置中的这行代码 .
cfg.CreateMap<objA, objB>()
.ForAllMembers(config => config.NullSubstitute(string.Empty));
我猜这种情况正在发生,因为它无法将int设置为null,而且现在它已经明确了,并且在automapper的v3中它只是忽略了它 . 有人可以证实吗?我是否必须在版本5中显式映射每个成员类型?
对于此映射,对象具有int,bools和字符串 . 有没有办法告诉它将字符串映射到String.Empty时为null并忽略其他类型?
1 回答
不幸的是,这是
NullSubstitute
的AM5行为,并且ForAllMembers
不支持过滤,也不提供有关被映射成员的任何信息 .作为一种解决方法,我建议使用
ForAllPropertyMaps
方法执行手册"fix up",该方法允许过滤并提供必要的信息: