我需要将PriceValue类型的对象映射到十进制值,并且我配置了以下映射:
src
问题是当null
为default(decimal)
时抛出异常。
配置映射的最佳方法是什么,以便返回git diff abc123
?
答案 0 :(得分:4)
在C#6中,这非常简单:
Mapper.CreateMap<PriceValue, decimal>()
.ConvertUsing(src => src?.Value ?? default(decimal));
使用ConvertUsing,您可以完全覆盖所有映射配置,因此没有其他选项可供您使用。
答案 1 :(得分:0)
我们正在使用类似于PriceValue的类系统,它包含int,long等。我们能够为我们的基类创建一个通用映射。这将是设置:
public class PriceValue : ValueDecimal
{
public decimal Value { get; set; }
...
}
然后映射变为:
Mapper.CreateMap<ValueDecimal, decimal>().ConvertUsing(f => f != null ? f.Value : default(decimal));
如果您使用此方法(具有基类),则可以避免为您创建的每个新类设置映射。