正常に動作している単体テストに SQLite を使用しようとしていますが、一部のリポジトリをテストすることは、トランザクションを使用するため問題があります。
ReadCommitted を使用するトランザクションの場合はすべて問題ありませんが、そのうちのいくつかは、System.Data.SQLite を見てサポートされていない ReadUncommitted を使用します。
if ((this._defaultIsolation != IsolationLevel.Serializable) && (this._defaultIsolation != IsolationLevel.ReadCommitted))
{
throw new NotSupportedException("Invalid Default IsolationLevel specified");
}
Session.BeginTransaction(...) をインターセプトして、単体テストの場合にのみトランザクション レベルを変更できるかどうか疑問に思っています。
更新: 私の解決策は、System.Data.SQLite のソースコードをダウンロードし、例外を変更してデフォルトの分離レベルを設定することでした。私はここでそれについてブログを書きました:
http://www.philliphaydon.com/2011/01/system-data-sqlite-isolationlevel-exception/