2

在对我的应用程序进行单元测试时,我使用的是EmbdeddedDocumentStore在内存中运行的。

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

这会导致以下异常:

Multiple databases are not supported in the embedded API currently

我该如何解决这个问题?我是否必须启动非嵌入式 RavenDB 服务器?

4

2 回答 2

1

假设您想在测试期间实际运行嵌入式 RavenDB 内存实例,并且您在生产中使用完整的 RavenDB 服务器,那么您只需添加一些代码来检查您使用的是哪种风格:

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

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

于 2013-03-15T14:10:43.783 回答
0

好吧,错误消息似乎很清楚......要么将您的代码更改为不需要多个数据库,要么使用非嵌入式存储或唠叨 RavenDB 人员以添加对这种情况的支持。

于 2013-03-15T13:29:32.500 回答