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
È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top