在执行以下代码以通过自动生成的 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。)
此消息可能出现 60% 的时间,在代码完成后最多 8 秒。据我所知,数据库没有加密,也没有密码。直到最近,我一直在将类似的 MS-SQL 数据库与实体框架模型一起使用,并且从未见过这样的错误。
帮助!
编辑:我从这里下载/安装了“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)