在将版本从 .NET Core 3.1 转换为 6.0 后,我发现所有 decimal(10, 5)
类型的列都自动成为 rounding 数字的 decimal 部分,并以圆形格式将其保存在数据库中。以前版本的 .NET Core 中的哪个工作正常。例如,我有一个类似 asset = 85.456
的列,在新版本中,它以 85.46
value 的形式存储在数据库中。
软件包的升级版本:EFCore 版本 2.13.4 => 6.13.18 EntityFrameworkCore.SqlServer 版本 2.2.6 => 6.0,我使用的是 Microsoft SQL Server。
我怎样才能防止这种情况?
回答1
你能确定你的模型构建器在上下文类中是这样的吗:
modelBuilder.Entity<TableName>(entity =>
{
entity.Property(e => e.FieldName).HasColumnType("decimal(10, 5)");
});
如果不是这样,则可能此字段 value 类型不是您的数据库中的 decimal(10,5)
。