gpt4 book ai didi

c# - Entity Framework 与 SQLite 错误 : An error occurred while reading from the store provider's data reader

转载 作者:行者123 更新时间:2023-12-03 01:20:59 29 4
gpt4 key购买 nike

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

使用该程序时我经常发现此错误:

An error occurred while reading from the store provider's data reader. See the inner exception for details.

内部异常是:

{"library routine called out of sequence\r\nnot an error"}

其他时候内部异常是:

Connection was closed, statement was terminated

另一次我发现:

unknown error\r\nno connection handle available

我发现这篇文章搜索:

Parallel.Foreach loop creating multiple db connections throws connection errors?

SQL Server CE database size issue

但没有人解决我的问题。

程序执行的查询不在循环内,而是在用户界面上按下按钮时执行的单个查询,但我注意到当我多次按下查询按钮时,错误发生的频率更高(不仅是面包)时间更快。

其他事情。当通过属性而不是方法示例访问数据库上下文时,错误会更频繁地发生(但又不仅仅是):

public List<Product> ProductList
{
get {
return DBContext.Products.ToList();
}
}

最佳答案

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

为每个线程使用不同的 DBContext 可以解决该问题。

在我的例子中,我使用 CaSTLe Windsor 将 DBContext 注入(inject)到执行查询的类中。将 DBContext 的生活方式配置为每个线程一个,问题就消失了。

关于c# - Entity Framework 与 SQLite 错误 : An error occurred while reading from the store provider's data reader,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24286158/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com