次のコードを実行して、自動生成されたADO.Netエンティティデータモデルを介してSQLiteデータベースから値を取得した後、VS2010でエラーメッセージが表示されます。
using (Data.DbEntities ent = new Data.DbEntities())
{
var r = from tt in ent.Template_DB select tt;
r.First();//Required to cause error
}
アクセスされているSQLiteデータベーステーブルは「テンプレート」(モデルの場合はTemplate_DBに名前が変更されました)と呼ばれ、文字列、ロング、ビットを保持するいくつかの列があります。私が試したすべてのクエリは、期待どおりの結果を返します。
私が受け取るメッセージは次のとおりです。
ReleaseHandleFailedが検出されました
タイプ'Microsoft.Win32.SafeHandles.SafeCapiHashHandle'のSafeHandleまたはCriticalHandleは、値0x0D0DDCF0のハンドルを正しく解放できませんでした。これは通常、ハンドルが別の手段(DangerousGetHandleを使用してハンドルを抽出して直接閉じる、またはその周りに別のSafeHandleを構築するなど)によって誤って解放されたことを示します。
このメッセージは、コードが完了してから最大8秒後に、おそらく60%の確率で表示されます。私の知る限り、データベースは暗号化されておらず、パスワードもありません。最近まで、Entity Frameworkモデルで同様のMS-SQLデータベースを使用してきましたが、このようなエラーは発生しませんでした。
ヘルプ!
編集:ここからSQLiteをインストールするために「sqlite-netFx40-setup-bundle-x86-2010-1.0.81.0.exe」をダウンロード/インストールしました。これには、System.Data.SQLite 1.0.81.0(3.7.12.1)パッケージが含まれていました(以下のコメントに記載されている3.7.13ではありません)