Недопустимая исключительная операция при попытке получить десятичное значение из SQL в double
У меня есть таблица 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
вместо.
1 ответ
Я понял. Очевидно, EF Core обозначает различные типы SQL непосредственно для типов C#. Так что SQL decimal
отображается на C# Decimal
, SQL float
отображается на C# System.Double
, И SQL real
отображается на C# System.Float
,
Таким образом, решение моей проблемы состояло в том, чтобы изменить decimal(38,2)
к float
в моей таблице SQL