私は、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. MapDBインメモリとディスクフォールバック
- 3. マイクロサービスベースのイベントストア
- 4. は、インメモリ
- 5. .NETインメモリDLLとASP.NETページ
- 6. J Oliversイベントストア - Sagaヘルプ
- 7. イベントストアのルート集合体と集合体
- 8. インメモリDB評価
- 9. は、インメモリApache Derbyの
- 10. SQLiteの結果はインメモリのデータ構造を設定していますか?
- 11. NHibernateのパフォーマンス:Session.CriteriaとLINQのインメモリ
- 12. イベントストアを使用する場合
- 13. リレーショナルデータをイベントストアに移行する
- 14. コンテキスト/イベントストア/プッシュ/プル間のCQRS /通信?
- 15. フラスコ塗布のためのインメモリ保存
- 16. インメモリIdentityServerによる統合テスト
- 17. Oracleインメモリ・セグメントへの表の移入
- 18. .NET上でインメモリとして作成されたRealm db
- 19. EFコアとインメモリのdbプロバイダを使用したRaw sql
- 20. インメモリ統合テストと環境変数 - .netコア
- 21. Gregのイベントストアの2つのカテゴリからのベストパフォーマンス投影戦略
- 22. イベントストアの各集約の最新バージョンのスナップショットを保持
- 23. イベントストア3.6のhttp apiはどこですか?
- 24. カスタムデータ構造とインメモリDBを使用したアドバイスが必要ですか?
- 25. 角2:インメモリweb-apiと一緒にng2-translateを使用する方法
- 26. Apache Minaをモック/インメモリとして使用するユニットテスト用のSFTPサーバ
- 27. コアデータとSqliteとパフォーマンス
- 28. SQLiteチェック制約とSQLite DBブラウザ
- 29. sqlite datastoreとindex.yaml
- 30. モノタックとSqliteエラー
私はWeb APIの統合テストで同じ問題があります。あなたのソリューションは私のために働かせることはできません。例はこちら[ここ](http://www.filedropper.com/eventstoredisposedobjectissue)任意のアイデアですか? –
@MartinNilssonは、SQLiteとテストランナーでx86/x64の問題と関係がありますか? –
IQueryableとIEnumerableの問題があるようです。 [https://gist.github.com/3009467](https://gist.github.com/3009467) メモメソッド –