当前位置:  开发笔记 > 数据库 > 正文

ReadUncommitted在SQLite中针对NHibernate打破了

如何解决《ReadUncommitted在SQLite中针对NHibernate打破了》经验,为你挑选了2个好方法。

我在一个利用NHibernate的项目中使用sqlite进行测试用例.一切都很好,除非我尝试创建一个ReadUncommitted事务:

例如Session.BeginTransaction(System.Data.IsolationLevel.ReadUncommitted)

错误消息是:

"的IsolationLevel"

(而已)

调用堆栈如下所示:

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

James L.. 7

您是否知道ReadUncommitted将恢复为Serialized隔离,除非您启用了共享缓存并且两个连接都来自同一个线程?也许有人试图拯救你自己?



1> James L..:

您是否知道ReadUncommitted将恢复为Serialized隔离,除非您启用了共享缓存并且两个连接都来自同一个线程?也许有人试图拯救你自己?



2> Mauricio Sch..:

SQLite(或至少其ADO.NET提供程序)仅支持Serializable和ReadCommitted隔离级别(当然还有Unspecified,默认为Serializable).

任何其他值都会抛出您提到的ArgumentException.

推荐阅读
Life一切安好
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有