使用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
相关产品推荐
相关产品推荐

