在对我的应用程序进行单元测试时,我使用的是EmbdeddedDocumentStore
在内存中运行的。
我的帐户注册控制器需要为租户创建一个新数据库。它在呼唤EnsureDatabaseExists(newTenantId)
。
这会导致以下异常:
Multiple databases are not supported in the embedded API currently
我该如何解决这个问题?我是否必须启动非嵌入式 RavenDB 服务器?
在对我的应用程序进行单元测试时,我使用的是EmbdeddedDocumentStore
在内存中运行的。
我的帐户注册控制器需要为租户创建一个新数据库。它在呼唤EnsureDatabaseExists(newTenantId)
。
这会导致以下异常:
Multiple databases are not supported in the embedded API currently
我该如何解决这个问题?我是否必须启动非嵌入式 RavenDB 服务器?
假设您想在测试期间实际运行嵌入式 RavenDB 内存实例,并且您在生产中使用完整的 RavenDB 服务器,那么您只需添加一些代码来检查您使用的是哪种风格:
if (!(documentStore is EmbeddableDocumentStore))
documentStore.DatabaseCommands.EnsureDatabaseExists(newTenantId);
您还需要确保newTenantId
在打开会话时没有尝试切换到数据库。您可能还需要一些条件逻辑。
好吧,错误消息似乎很清楚......要么将您的代码更改为不需要多个数据库,要么使用非嵌入式存储或唠叨 RavenDB 人员以添加对这种情况的支持。