尝试将SQL中的十进制值转换为双精度时出现无效操作异常



我有一个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

最新更新