从.NET应用程序管理Windows中的SQLite连接的最佳方法是什么?

时间:2010-06-24 10:22:14

标签: .net windows sqlite

我在.NET应用程序中使用Windows中的SQLite。 .NET应用程序正在使用Open Source System.Data.SQLite库。

在我的应用程序中,有许多线程访问同一个数据库。最好是:

  1. 根据需要创建和销毁连接(我可以拥有的最大数量是多少?)
  2. 创建一个长期存在的连接并从不同的线程使用它(这样安全吗?)
  3. 别的什么?
  4. 我最初选择#2但在从其他线程访问连接时遇到与事务相关的随机/间歇性错误。我已经转移到选择#1并且错误已经消失。

1 个答案:

答案 0 :(得分:3)

根据SQLite FAQ,最新版本的SQLite允许多个线程使用相同的连接,但是其中只有一个可以同时拥有一个事务。

我不知道对一次可能处于活动状态的连接数有任何内置限制。

我建议设置一个拥有连接的“数据库线程”,并代表其他线程执行任务。这就是我在.NET 4 SQLite过程中所做的,而且效果非常好。

P.S。如果你有兴趣,我最近写了一篇关于using SQLite via Entity Framework 4的博文。