执行以下代码后,我在VS2010中收到错误消息,以通过自动生成的ADO.Net实体数据模型从SQLite数据库中获取值。
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
类型的SafeHandle或CriticalHandle 'Microsoft.Win32.SafeHandles.SafeCapiHashHandle'无法正常使用 释放值为0x0D0DDCF0的句柄。这通常表明了这一点 通过其他方式错误地释放句柄(例如 使用DangerousGetHandle提取句柄并直接关闭它 或围绕它建立另一个SafeHandle。)
此消息可能有60%的时间出现,代码完成后最多8秒。据我所知,数据库未加密且没有密码。直到最近,我一直在使用与实体框架模型类似的MS-SQL数据库,从未见过像这样的错误。
帮助!
编辑: 我从here下载/安装了“sqlite-netFx40-setup-bundle-x86-2010-1.0.81.0.exe”以安装SQLite。这包括System.Data.SQLite 1.0.81.0(3.7.12.1)包(不 3.7.13,如下面的评论中所述)