带有SQLite错误的实体框架:从商店提供商的数据读取器读取时发生错误

abr*_*fra 4 c# sqlite wpf entity-framework .net-4.5

我正在使用SQLite 1.0.89和VS2013上的EF 5 .NET Framework 4.5在C#中的WPF应用程序中.DB大小不大,程序使用的表包含最多1000行.

使用该程序我经常发现这个错误:

从商店提供商的数据阅读器读取时发生错误.有关详细信息,请参阅内部异常

内在的例外是:

{"库例程不按顺序调用\ r \n \n错误"}

其他时间内部异常是:

连接已关闭,声明已终止

我又发现了一次:

未知错误\ r \nno连接句柄可用

我找到这篇文章搜索:

Parallel.Foreach循环创建多个数据库连接会引发连接错误?

SQL Server CE数据库大小问题

但没有人解决我的问题.

程序执行的查询不在循环内,但是当在UI上按下按钮时执行单个查询但我注意到当我更快地按下查询按钮时错误更频繁地发生(不仅是发髻).

其他的事情.当DB Context通过属性访问而不是方法示例时,错误更频繁地发生(但不仅仅是)

public List<Product> ProductList
{
get {
      return DBContext.Products.ToList();
    }
}
Run Code Online (Sandbox Code Playgroud)

abr*_*fra 7

该问题是由使用相同DBContext查询数据库的多个线程引起的.

为每个线程使用不同的DBContext解决问题.

在我的例子中,我使用Castle Windsor将DBContext注入执行查询的类中.将DBContext的生活方式配置为每个线程一个问题已经消失.