RavenDB当前嵌入式API不支持多个数据库

问题描述:

当我单元测试我的应用程序时,我正在使用运行内存的EmbdeddedDocumentStoreRavenDB当前嵌入式API不支持多个数据库

我的帐号注册控制器需要为租户创建一个新的数据库。它叫EnsureDatabaseExists(newTenantId)

这将导致以下异常:

Multiple databases are not supported in the embedded API currently 

我如何工作,解决此问题?我必须启动一个非嵌入式RavenDB服务器吗?

那么错误消息似乎很清楚......要么改变你的代码,不要求多个数据库,要么使用非嵌入式商店或唠叨RavenDB家伙来增加对这种情况的支持。

+0

或者在注册控制器的单元测试中模拟IDocumentStore。 – nickvane 2013-03-15 13:35:01

假设你想实际对测试过程中的嵌入式RavenDB内存实例上运行,并且使用的是在生产全RavenDB服务器,那么你可以添加一些代码来检查你正在使用哪种香味:

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

您还需要确保在打开会话时不试图切换到newTenantId数据库。您可能还需要一些条件逻辑。