【问题标题】:What's the best way to manage SQLite connections in Windows from a .NET application?从 .NET 应用程序管理 Windows 中的 SQLite 连接的最佳方法是什么?
【发布时间】:2010-06-24 10:22:13
【问题描述】:

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

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

  1. 根据需要创建和销毁连接(我可以拥有的最大数量是多少?)
  2. 创建一个长期存在的连接并从不同的线程中使用它(这样安全吗?)
  3. 还有别的吗?

我最初选择了选择#2,但在从其他线程访问连接时遇到了与事务有关的随机/间歇性错误。从那以后,我移至选择#1,并且错误消失了。

【问题讨论】:

  • 仅供参考,链接似乎已损坏...
  • 感谢 Tom - 链接已修复。

标签: .net windows sqlite


【解决方案1】:

根据SQLite FAQ,最新版本的SQLite确实允许多个线程使用同一个连接,但一次只能有一个线程有一个事务。

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

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

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

【讨论】:

    猜你喜欢
    • 2010-09-16
    • 1970-01-01
    • 1970-01-01
    • 2020-01-18
    • 1970-01-01
    • 2017-11-24
    • 1970-01-01
    • 1970-01-01
    • 2010-09-15
    相关资源
    最近更新 更多