繁体   English   中英

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

[英]What's the best way to manage SQLite connections in Windows from a .NET application?

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

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

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

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

根据SQLite常见问题解答 ,最新版本的SQLite确实允许多个线程使用同一连接,但是一次只能有一个线程有一个事务。

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

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

PS:如果您有兴趣,我最近写了一篇有关通过Entity Framework 4使用SQLite的博客文章。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM