EF decimal 精度缺失问题
网上大多数方法为给实体对象加载Attribute属性来解决,但是比较麻烦,针对部分只需要将精度设定为固定值的需求并不合适,例如:Attribute属性解决精度缺失问题方案
经过研究后,还可以加载一个统一的解决方案在Attribute属性前,作为默认精度,添加Attribute属性后,以Attribute属性为准的方案:
重载OnModelCreating
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
....
//添加默认精度属性(18,6),当decimal没有设置Attrubute时,该属性起作用
modelBuilder.Properties().Where(t=>t.PropertyType==typeof(decimal))
.Configure(m=>m.HasPrecision(18,6));
//加载Attribute精度设定,可以覆盖默认精度属性
modelBuilder.Conventions.Add(new DecimalPrecisionAttributeConvention());
....
}