有人能够解释为什么当存储的值比DB字段中的最大小数位数多的小数位时,EF默认不会舍入小数。
当可存储的小数(在DB字段中配置的小数)短于需要存储的计算值时,对任何类型的应用程序进行四舍五入是常识。
就目前而言,似乎EF正在将小数字视为字符串,并在存储到数据库表时截断该值。
EDIT /答案: 对于那些正在努力寻找简单修复的人来说:
我正在寻找禁用截断功能的内容。
public UnitOfWork(string connectionString)
{
DataContext = new DbContext(connectionString);
SqlProviderServices.TruncateDecimalsToScale = false;
}
这个问题的答案恰恰是预期的: Entity Framework Code First truncating my decimals