如何防止在 .NET 6 中自动舍入数字的小数部分
How to prevent automatically rounding the decimal part of the number in .NET 6
我把版本从.NET Core 3.1 转换到6.0 后,我发现所有decimal(10, 5)
类型的列都会自动对数字的小数部分进行四舍五入,并以四舍五入的格式保存在数据库中。在以前版本的 .NET Core 中,它工作正常。
例如,我有一个像 asset = 85.456
这样的列,在新版本中它作为 85.46
值存储在数据库中。
软件包的升级版本:
EFCore 版本 2.13.4 => 6.13.18
EntityFrameworkCore.SqlServer 版本 2.2.6 => 6.0
我正在使用 Microsoft SQL 服务器。
我怎样才能避免这种情况?
你能确定你的模型构建器在上下文中是这样的吗class:
modelBuilder.Entity<TableName>(entity =>
{
entity.Property(e => e.FieldName).HasColumnType("decimal(10, 5)");
});
如果不是这样,可能这个字段值类型在你的数据库中不decimal(10,5)
。
我把版本从.NET Core 3.1 转换到6.0 后,我发现所有decimal(10, 5)
类型的列都会自动对数字的小数部分进行四舍五入,并以四舍五入的格式保存在数据库中。在以前版本的 .NET Core 中,它工作正常。
例如,我有一个像 asset = 85.456
这样的列,在新版本中它作为 85.46
值存储在数据库中。
软件包的升级版本: EFCore 版本 2.13.4 => 6.13.18 EntityFrameworkCore.SqlServer 版本 2.2.6 => 6.0 我正在使用 Microsoft SQL 服务器。
我怎样才能避免这种情况?
你能确定你的模型构建器在上下文中是这样的吗class:
modelBuilder.Entity<TableName>(entity =>
{
entity.Property(e => e.FieldName).HasColumnType("decimal(10, 5)");
});
如果不是这样,可能这个字段值类型在你的数据库中不decimal(10,5)
。