Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ReadUncommitted broken in SQLite against NHibernate

I am using sqlite for test cases in a project that leverages NHibernate. Everything is working great, except when I try to create a ReadUncommitted transaction:

e.g. Session.BeginTransaction(System.Data.IsolationLevel.ReadUncommitted)

The error message is:

"isolationLevel"

(thats it)

The call stack looks like:

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)

If I switch to a different isolation level (like serialized or readcommitted), everything executes correctly.

Ideas?

NHibernate 2.1.2
SQLite (.NET version) 1.0.65.0
Fluent NHibernate 1.0
like image 989
programmer Avatar asked Dec 10 '22 17:12

programmer


1 Answers

Did you know that ReadUncommitted will revert to Serialized isolation unless you've enabled the shared cache and both connections are from the same thread? Perhaps someone's trying to save you from yourself?

like image 109
James L Avatar answered Jan 18 '23 17:01

James L