尝试将十进制值从 SQL 转换为双精度时出现无效操作异常
Invalid Operation Exception when trying to get decimal value from SQL into double
我有一个 SQL table 其中有几个大的十进制值。太大,无法在我的模型中使用 decimals
。但是,当我使用 double
时,我得到一个 Invalid Operation Exception
,它指出它无法将 System.Decimal
转换为 System.Double
。
我在 .Net Core 2.2 应用程序中使用 EntityFramework Core。有没有办法向我的 DbContext 指定它应该将这些字段作为双精度而不是小数来获取?
我正在使用 Microsoft SQL 服务器数据库。我的列类型是 decimal(38, 2)。存储在那里的值约为 1.0005e+35。我知道这个值太大而无法放入 C# Decimal
中,因此我需要将其放入 System.Double
中。
我明白了。显然,EF Core 将不同的 SQL 类型直接指定给 C# 类型。所以 SQL decimal
映射到 C# Decimal
。 SQL float
映射到 C# System.Double
。 SQL real
映射到 C# System.Float
.
所以我的问题的解决方案是将 SQL table
中的 decimal(38,2)
更改为 float
我有一个 SQL table 其中有几个大的十进制值。太大,无法在我的模型中使用 decimals
。但是,当我使用 double
时,我得到一个 Invalid Operation Exception
,它指出它无法将 System.Decimal
转换为 System.Double
。
我在 .Net Core 2.2 应用程序中使用 EntityFramework Core。有没有办法向我的 DbContext 指定它应该将这些字段作为双精度而不是小数来获取?
我正在使用 Microsoft SQL 服务器数据库。我的列类型是 decimal(38, 2)。存储在那里的值约为 1.0005e+35。我知道这个值太大而无法放入 C# Decimal
中,因此我需要将其放入 System.Double
中。
我明白了。显然,EF Core 将不同的 SQL 类型直接指定给 C# 类型。所以 SQL decimal
映射到 C# Decimal
。 SQL float
映射到 C# System.Double
。 SQL real
映射到 C# System.Float
.
所以我的问题的解决方案是将 SQL table
中的decimal(38,2)
更改为 float