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 に答える