我有一个SQL表,其中有几个大的十进制值。太大,无法在我的模型中使用decimals
。然而,当我使用double
时,我得到一个Invalid Operation Exception
,它表示无法将System.Decimal
转换为System.Double
。
我在中使用EntityFramework Core。Net Core 2.2应用程序。有没有一种方法可以指定给我的DbContext,它应该把这些字段作为双精度而不是小数?
我使用的是Microsoft SQL Server数据库。我的列类型是十进制(38,2)。存储在那里的值约为1.0005e+35。我知道这个值太大了,无法放入C#Decimal
中,所以我需要将它放入System.Double
中。
我想明白了。显然,EF Core将不同的SQL类型直接指定为C#类型。因此,SQLdecimal
映射到C#Decimal
。SQLfloat
映射到C#System.Double
。并且SQLreal
映射到C#CCD_。
因此,我的问题的解决方案是将SQL表中的decimal(38,2)
更改为float