我在一个利用NHibernate的项目中使用sqlite作为测试用例。除了我试图创建一个readuncommitted事务外,所有的工作都很好:
例如,session.beginTransaction(system.data.isolationLevel.readUncommitted)
错误消息为:
“隔离级别”
(就这样)
调用堆栈如下:
at System.Data.SQLite.SQLiteConnection.BeginDbTransaction(IsolationLevel isolationLevel)
at System.Data.Common.DbConnection.System.Data.IDbConnection.BeginTransaction(IsolationLevel isolationLevel)
at NHibernate.Transaction.AdoTransaction.Begin(IsolationLevel isolationLevel)
如果我切换到不同的隔离级别(如序列化或readcommitted),所有操作都会正确执行。
主意?
NHibernate 2.1.2
SQLite (.NET version) 1.0.65.0
Fluent NHibernate 1.0
最佳答案
您知道readuncommitted将恢复到序列化隔离,除非您启用了共享缓存,并且两个连接来自同一线程?也许有人想把你从自己身上救出来?