私は、JSONのシリアル化とinmemory-modeで動作するSqliteを使用して、EventStoreの永続性をテストしようとしています。 EventStoreの初期化中に「No such table:Commits」例外が発生します。これは、EventStoreが何らかの形で接続を閉じて新しいメモリを開くため、新しいメモリ内のSqliteインスタンス(sans Commitsテーブル)が表示されるためです。この仕事をする方法はありますか?イベントストアとSqliteインメモリ
2
A
答えて
2
特に、 ":memory:"接続文字列を使用している場合は、SQLiteの実装が面白いです。実装を取り巻く受入れテストは、操作の間に「消えていない」データベースに依存します。
EventStoreの基本的な設計は、別々の操作にそれぞれ別個のアクションを分離:
- は、構成に応じて、周囲のTransactionScope(もしあれば)
- に入隊する
- はビルド接続を開きIDbCommand
- はのIDbCommand
- 評価結果を実行
- は、接続(プールに戻ってそれを解放する)
- は(例外はスローされません)のTransactionScope
- はあなたに実行している問題があるのTransactionScope
を破棄を完了を破棄している各呼び出しに対してEventStoreは接続を開いて閉じます。
私は、同じIDbConnectionをプールに戻さずに明示的に使用することをサポートしたいので、これを回避する方法があります。 (リリース候補段階にある)EventStore v3.0では、同じ接続を利用して、接続が各操作の後に取り壊す回避するメソッド呼び出しがあります。
ConfigurationConnectionFactory.OpenScope("SQLite"); // SQLite = app.config connection key
単に「using_the_persistence_engine」受け入れテストクラスにこれを追加し、あなたはすべてのセットです:
private static IDisposable scope;
は、「コンテキストを確立」する最初の行としてこれを追加します。
最後にscope = ConfigurationConnectionFactory.OpenScope("SQLite");
、「クリーンアップのすべて」の中にlastlineを次のようになります。
scope.Dispose();
関連する問題
- 1. WebアプリケーションのメインデータベースとしてのSQLiteインメモリの実現可能性
- 2. は、インメモリ
- 3. .NETインメモリDLLとASP.NETページ
- 4. J Oliversイベントストア - Sagaヘルプ
- 5. インメモリDB評価
- 6. は、インメモリApache Derbyの
- 7. NHibernateのパフォーマンス:Session.CriteriaとLINQのインメモリ
- 8. SQLiteの結果はインメモリのデータ構造を設定していますか?
- 9. リレーショナルデータをイベントストアに移行する
- 10. イベントストアを使用する場合
- 11. フラスコ塗布のためのインメモリ保存
- 12. イベントストアの各集約の最新バージョンのスナップショットを保持
- 13. Apache Minaをモック/インメモリとして使用するユニットテスト用のSFTPサーバ
- 14. カスタムデータ構造とインメモリDBを使用したアドバイスが必要ですか?
- 15. コアデータとSqliteとパフォーマンス
- 16. SQLiteチェック制約とSQLite DBブラウザ
- 17. SQLiteとUTF8
- 18. FluentNhibernateとSQLite
- 19. SQLiteとJ2ME
- 20. sqliteとバッチファイル
- 21. SQLiteとiphone
- 22. SQLiteとリモートデータベース
- 23. SQLiteとSQL Server
- 24. sqlite datastoreとindex.yaml
- 25. モノタックとSqliteエラー
- 26. SQLite SELECTとUITableView
- 27. SQLiteとMSDEV 2010
- 28. PerlとSqlite
- 29. SQLiteデータベースとListView:NullPointerExeption
- 30. SQLiteとHSQLDB
私はWeb APIの統合テストで同じ問題があります。あなたのソリューションは私のために働かせることはできません。例はこちら[ここ](http://www.filedropper.com/eventstoredisposedobjectissue)任意のアイデアですか? –
@MartinNilssonは、SQLiteとテストランナーでx86/x64の問題と関係がありますか? –
IQueryableとIEnumerableの問題があるようです。 [https://gist.github.com/3009467](https://gist.github.com/3009467) メモメソッド –