我有一个应用程序,我正在从MSSQL和.NET移植到SQLite和Mono。我正在使用NHibernate,FluentNHibernate,NHibernateLINQ和SQLite。
当我连接一个人测试应用程序时,一切正常,但是当其他人开始使用应用程序时,它会中断并抛出一个SQLite异常,说“数据库文件被锁定”。
我知道SQLite在写入时会锁定数据库并返回忙状态,我猜我可能没有正确配置NHibernate来处理这个问题,但我找不到任何有帮助的在线信息至今。这就像我是唯一有这个问题的人。我呢?有什么想法吗?
由于
答案 0 :(得分:1)
我怀疑你的问题不是FNH本身。
我的FNH / SQLite项目中遇到了类似的问题(.NET,而不是Mono)。在我因其他原因重构某些会话管理代码后,它神秘地修复了自己。 (主要更改是使用事务进行所有数据库访问,并确保所有事务和会话对象都已正确处置)。
This link讨论了由于丢失Dispose而导致的类似问题。我怀疑这可能是我的问题,但我不确定。 (只是保持我的手指交叉,问题不再出现!)。
另一个值得尝试的好事来源是Database file is inexplicably locked during SQLite commit