Readuncompleted rotto in sqlite contro nhibernate
-
21-09-2019 - |
Domanda
Sto usando SQLite per i casi di test in un progetto che sfrutta Nhibernate. Tutto funziona alla grande, tranne quando provo a creare una transazione ReadunCommessa:
EG session.beginTransaction (System.Data.IsolationLevel.ReadunCompieted)
Il messaggio di errore è:
"Isolationlevel"
(questo è tutto)
Lo stack di chiamata sembra:
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)
Se passo a un livello di isolamento diverso (come serializzato o leggibile), tutto esegue correttamente.
Idee?
NHibernate 2.1.2
SQLite (.NET version) 1.0.65.0
Fluent NHibernate 1.0
Soluzione
Sapevi che ReadunCompieted tornerà all'isolamento serializzato a meno che tu non abbia abilitato la cache condivisa e entrambe le connessioni provengano dallo stesso thread? Forse qualcuno sta cercando di salvarti da te stesso?
Altri suggerimenti
SQLite (o almeno il suo provider Ado.net) Supporta solo livelli di isolamento serializzabili e rettificati (e ovviamente non specificato, che è default al serializzabile).
Qualsiasi altro valore lancia l'argomentazione che menzioni.