Недопустимая исключительная операция при попытке получить десятичное значение из SQL в double - PullRequest
0 голосов
/ 10 февраля 2019

У меня есть таблица 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 Ответ

0 голосов
/ 11 февраля 2019

Я понял это.Очевидно, EF Core обозначает различные типы SQL непосредственно для типов C #.Таким образом, SQL decimal отображается на C # Decimal.SQL float отображается на C # System.Double.И SQL real отображается на C # System.Float.

Так что решение моей проблемы состояло в том, чтобы заменить decimal(38,2) на float в моей таблице SQL

...