You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用NHibernate锁定SQLite数据库时遇到异常问题求助

使用NHibernate锁定SQLite数据库时遇到异常问题求助

我现在在做一个基于SQLite数据库和NHibernate的项目,需求是在应用启动创建NHibernate会话后,把数据库锁定,而且这个锁要持续到应用生命周期结束。

我先试了下面这段代码:

const string LOCKING_PRAGMA = "PRAGMA locking_mode = EXCLUSIVE; BEGIN EXCLUSIVE;";
ISession session = SessionFactory.OpenSession();
session.CreateSQLQuery(LOCKING_PRAGMA).ExecuteUpdate();

结果发现session.CreateSQLQuery完全没生效,数据库根本没被锁定。

后来我换了另一种方式,直接用数据库连接创建命令执行:

DbCommand command = session.Connection.CreateCommand();
command.CommandText = LOCKING_PRAGMA;
command.ExecuteNonQuery();

这次看起来是把数据库锁住了,但之后我完全访问不了任何表,每次操作都会抛出“database is locked”的异常。

有没有大佬能帮我看看这问题出在哪,该怎么解决呀?

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.08 10:10:27