如何防止在 .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)