尝试将十进制值从 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