从服务器获取数据库名称

Getting database names from server

我想做一件简单的事情:获取 RavenDB 服务器上的数据库名称。根据文档 (https://ravendb.net/docs/article-page/4.1/csharp/client-api/operations/server-wide/get-database-names) 看起来很简单,但是我面临着先有鸡还是先有蛋的问题。

问题来了,因为我想在事先不知道数据库名称的情况下获取数据库名称。文档中的代码运行良好,但需要与 DocumentStore 建立活动连接。要获得与 DocumentStore 的活动连接,必须 select 一个有效的数据库。否则我无法执行GetDatabaseNamesOperation。

这让我觉得我错过了什么。有没有什么方法可以获取数据库名称而不必至少知道其中一个名称?

数据库不是开店所必需的。以下代码没有问题:

using (var store = new DocumentStore
            {
                Urls = new[] { "http://live-test.ravendb.net" }
            })
            {
                store.Initialize();
                var dbs = store.Maintenance.Server.Send(new GetDatabaseNamesOperation(0, 25));
            }

我们将 GetDatabaseNamesOperation 发送到 ServerStore,它对所有数据库都是通用的,并保存通用数据(如数据库名称)。