2013-03-15 59 views
2

當我單元測試我的應用程序時,我正在使用運行內存的EmbdeddedDocumentStoreRavenDB當前嵌入式API不支持多個數據庫

我的帳號註冊控制器需要爲租戶創建一個新的數據庫。它叫EnsureDatabaseExists(newTenantId)

這將導致以下異常:

Multiple databases are not supported in the embedded API currently 

我如何工作,解決此問題?我必須啓動一個非嵌入式RavenDB服務器嗎?

回答

0

那麼錯誤消息似乎很清楚......要麼改變你的代碼,不要求多個數據庫,要麼使用非嵌入式商店或嘮叨RavenDB傢伙來增加對這種情況的支持。

+0

或者在註冊控制器的單元測試中模擬IDocumentStore。 – nickvane 2013-03-15 13:35:01

1

假設你想實際對測試過程中的嵌入式RavenDB內存實例上運行,並且使用的是在生產全RavenDB服務器,那麼你可以添加一些代碼來檢查你正在使用哪種香味:

if (!(documentStore is EmbeddableDocumentStore)) 
    documentStore.DatabaseCommands.EnsureDatabaseExists(newTenantId); 

您還需要確保在打開會話時不試圖切換到newTenantId數據庫。您可能還需要一些條件邏輯。