我想單元測試使用JSON序列化和運行在內存模式下的Sqlite的EventStore持久性。在EventStore初始化期間,我收到了「沒有這樣的表:提交」異常。我假設這是因爲EventStore以某種方式關閉連接並打開一個新連接,導致它看到一個新的內存中的Sqlite實例(sans Commits表)。有什麼辦法可以做到這一點?事件存儲和Sqlite內存中
2
A
回答
2
SQLite實現很有趣,特別是當你使用「:memory:」連接字符串時。圍繞實施的驗收測試取決於數據庫在操作之間沒有「消失」。
的EventStore的基本設計分離每個離散動作到一個單獨的操作,其中:
- 取決於配置,報名在環境TransactionScope的(如果有的話)
- 打開連接
- 構建在IDbCommand的
- 執行的IDbCommand
- 評估結果
- 部署的連接(其釋放回池中)
- 完成的TransactionScope(沒有拋出異常)
- 部署的TransactionScope的
你正在運行到的問題是,每次調用針對EventStore打開和關閉連接。
現在,有一種解決方法,因爲我想明確支持使用相同的IDbConnection而不將它釋放回池中。 EventStore 3.0(這是在發佈候選階段)具有利用相同的連接,並且避免連接撕每次操作之後向下一個方法調用:
ConfigurationConnectionFactory.OpenScope("SQLite"); // SQLite = app.config connection key
只需將此添加到「using_the_persistence_engine」驗收測試類和就這麼簡單:
private static IDisposable scope;
添加爲第一行 「建立情境」:
scope = ConfigurationConnectionFactory.OpenScope("SQLite");
最後,在lastLine所 「清理一切」 S應該是:
scope.Dispose();
相關問題
- 1. sqlite的內部存儲
- 2. Android內部文件存儲或SQLite?
- 3. 內存中的SQLite和NHibernate
- 4. sqlite數據存儲和index.yaml
- 5. 內部存儲和文件?
- 6. 檢索數據 - SQLite的查詢VS存儲和內存
- 7. 存儲Android SQLite
- 8. 聽存儲事件
- 9. 將文件存儲在Android的外部存儲和內部存儲中
- 10. 事件的內部存儲機制
- 11. 存儲ListView內部存儲或SQLite的元素?
- 12. Android設備中的內存和存儲
- 13. .NET中的事件和內存泄漏
- 14. 如何在sqlite中存儲mp3文件?
- 15. 如何在sqlite中存儲大文件
- 16. 如何將文件存儲到sqlite中
- 17. Android和內部存儲內存
- 18. 使用ADM-ZIP(Node.js)將SQLite存儲到內存數據庫中
- 19. 內部存儲不是存儲文件
- 20. 存儲INI文件在內存中
- 21. 將文件存儲在內存中
- 22. 在Sqlite中存儲NSMutableArray
- 23. Firefox 3.0中的SQLite存儲+
- 24. 在SQLite中存儲BMI
- 25. 在SQLite中存儲數據
- 26. 在SQLite中存儲圖像
- 27. SQLite中的數組存儲
- 28. 在sqlite中存儲小數
- 29. SQLite vs內存
- 30. 如何sqlite的存儲其內容
我在Web Api集成測試中遇到同樣的問題。無法讓您的解決方案適合我。例子是[here](http://www.filedropper.com/eventstoredisposedobjectissue)有什麼想法? –
@MartinNilsson與SQLite和您的測試運行器有什麼關係x86/x64的問題? –
這似乎是IQueryable與IEnumerable的問題。 [https://gist.github.com/3009467](https://gist.github.com/3009467) 注意我還需要在從方法 –