RavenDB当前嵌入式API不支持多个数据库
问题描述:
当我单元测试我的应用程序时,我正在使用运行内存的EmbdeddedDocumentStore
。RavenDB当前嵌入式API不支持多个数据库
我的帐号注册控制器需要为租户创建一个新的数据库。它叫EnsureDatabaseExists(newTenantId)
。
这将导致以下异常:
Multiple databases are not supported in the embedded API currently
我如何工作,解决此问题?我必须启动一个非嵌入式RavenDB服务器吗?
答
那么错误消息似乎很清楚......要么改变你的代码,不要求多个数据库,要么使用非嵌入式商店或唠叨RavenDB家伙来增加对这种情况的支持。
答
假设你想实际对测试过程中的嵌入式RavenDB内存实例上运行,并且使用的是在生产全RavenDB服务器,那么你可以添加一些代码来检查你正在使用哪种香味:
if (!(documentStore is EmbeddableDocumentStore))
documentStore.DatabaseCommands.EnsureDatabaseExists(newTenantId);
您还需要确保在打开会话时不试图切换到newTenantId
数据库。您可能还需要一些条件逻辑。
或者在注册控制器的单元测试中模拟IDocumentStore。 – nickvane 2013-03-15 13:35:01