Sqlite с использованием Dapper. Ошибка анализа столбца. Невозможно привести объект типа System.Int64 к типу System.DoublC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Sqlite с использованием Dapper. Ошибка анализа столбца. Невозможно привести объект типа System.Int64 к типу System.Doubl

Сообщение Anonymous »

Я использую fastcrud и dapper для сопоставления результатов запроса с моим пользовательским типом. Я исследовал изящную библиотеку и пришел к выводу, что, по моему мнению, это проблема с пакетом Microsoft.Data.Sqlite. Не уверен, что это нужно исправить, но это проблема.

Прежде чем анализировать каждую строку из результата запроса, Dapper использует метод GetFieldType из класса SqliteDataReader, чтобы получить правильные типы столбцов.

Представьте себе следующую таблицу:

Код: Выделить всё

Id | MinTemp | MaxTemp

1  | 10.5    | 18.2

2  | 10.6    | 20
Метод sqlitedatareader.GetFieldType предоставит вам следующие типы:

Система .Int64 для Id и System.Double для MinTemp и MaxTemp
Это кажется правильным, но при анализе результатов в строке 2 возникает следующая ошибка

Ошибка анализа столбца 10 (MaxTemp=20 - Int64)
Невозможно привести объект типа «System.Int64» к типу «System.Double».


Благодаря системе динамических типов SQLite тип MaxTemp в строке 2 меняется на System.Int64. Но поскольку dapper определил тип MaxTemp для удвоения, это приводит к ошибке, упомянутой выше.

Если я изменю значение MaxTemp в своей базе данных sqlite на 20.00001, проблема будет устранена, но это неверно.

Используемые пакеты:
"Microsoft.Data.Sqlite": "1.0.0"

Кто-нибудь знает, как решить эту проблему?

Подробнее здесь: https://stackoverflow.com/questions/399 ... ype-system
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»