我有一个SQL表,其中有几个大的十进制值。太大,无法在我的模型中使用decimals
。但是,当我使用double
时,会得到一个Invalid Operation Exception
,它指出无法将System.Decimal
转换为System.Double
。
我正在.Net Core 2.2应用程序中使用EntityFramework Core。有没有一种方法可以向我的DbContext指定应将这些字段捕获为双精度而不是小数?
我正在使用Microsoft SQL Server数据库。我的列类型是十进制(38,2)。那里存储的值是〜1.0005e + 35。我知道此值太大而无法放入C#Decimal
中,因此我需要将其放入System.Double
中。
答案 0 :(得分:2)
我知道了。显然,EF Core将不同的SQL类型直接指定为C#类型。因此,SQL decimal
映射到C#Decimal
。 SQL float
映射到C#System.Double
。 SQL real
映射到C#System.Float
。
因此,解决此问题的方法是将SQL表中的decimal(38,2)
更改为float