c# - 谁能提供 SQLite "SetTimeout"的 C# 示例?

标签 c# nhibernate sqlite fluent-nhibernate system.data.sqlite

我在 Fluent NHibernate 项目上使用 SQLite(system.data.sqlite v. 1.0.60.0)。

我有一个程序写入数据库,另一个程序从中读取。有时,我会遇到 SQLITE_BUSY 异常,我需要解决这个问题。

我在 Google 中发现了多个对 sqlite_busy_timeout 的引用,这(如果我理解正确的话)将导致 SQLite 在抛出异常之前重试。这可能足以满足我的需求。

但是,这似乎不在 system.data.sqlite 程序集中。

当我使用对象浏览器搜索 SetTimeout 时,我得到了两次匹配:

System.Data.SQLite.SQLite3.SetTimeout(int)

System.Data.SQLite.SQLiteBase.SetTimeout(int)

但我似乎无法在我的代码中使用它们 - 它们不会出现在 Intellisense 中,并且 VS2008 为 SQLite3 显示红色下划线,并显示消息“无法访问此处的内部类”。

谁能给我一个示例(在 C# 中)以显示此方法的确切语法?

或者这是正确的方法吗?我可能可以在我的代码中检查 SQLITE_BUSY,但也没有找到任何证明该方法的好例子。

最后,Fluent NHibernate 或 NHibernate 是否有任何机制来提供对 SQLite 数据库的简单共享访问?

最佳答案

就像你说的,SetTimeout() is internal ,所以你(或 NHibernate)不能调用它。该方法只包装
sqlite_busy_timeout 和抛出,你肯定不想在你的应用程序代码中使用那些不安全的方法。

根据 this ,SQLite 提供程序应重试 30 秒。

关于c# - 谁能提供 SQLite "SetTimeout"的 C# 示例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3089065/

相关文章:

c# - 使用 ML.NET 的动态训练/测试类

c# - 来自代码隐藏的 Api POST

c# - 在 asp.net mvc 应用程序中重新启动应用程序时删除的数据

.net - 如何在 NHibernate 中使用带有枚举属性的 ICriteria

python - 无法使用for循环处理大量数据

c# - 如何从 ActionFilterAttribute 访问 AppSettings

c# - LINQ-NHibernate - 只为复杂对象选择几个字段(包括集合)

c# - NHibernate 加入子类错误 - 对象与目标类型不匹配

android - 零星的 NullPointerException 尽管对象不为空

android - 可能通过 InterationListener 从适配器调用 Intent