質問: 20〜Int64) 'System.Int64'型のオブジェクトを 'System.Double'型にキャストできません。** SQLiteの動的型システムのため、2行目のMaxTempの型をSystem.Int64に変更します。しかし、dapperがMaxTempのタイプをdoubleに定義しているため、上記のエラーが発生します。 もし私が20.00001に私のsqliteデータベース内の私のMaxTempの値を変更する問題は修正されていますが、これは正しくありません。 使用パッケージ: " **Microsoft.Data.Sqlite** ": "1.0.0" 誰でもこの問題を解決する方法を知っていますか?
回答: これはDapperのバグ/欠陥のようです: SQLiteは値の類似性を使用するため、この例の2行目の値20はINTのように扱われます。 (文字通り`'20.0'`や`'20.00'`などとして挿入されたとしても) どうやらDapperは個々のフィールドごとに戻ってきたさまざまなタイプを個別に処理できません。 この問題を回避するには、SQL CAST()を使用することが考えられます。例: `SELECT CAST(field123 AS REAL) AS field123 FROM ...` これはバグを回避するように見えます。