如何获取RavenDB 4

时间:2018-04-10 12:39:25

标签: c# collections ravendb

以前版本中有这种方法 -

var terms = new GetTermsOperation("Raven/DocumentsByEntityName", "Tag", "", 1024);

但现在它不起作用。我试图使用另一个命令:

var op = new GetCollectionStatisticsOperation();
var collectionStats = store.Maintenance.Send(op);

但它抛出一个错误 - System.ArgumentNullException:' Value不能为null。 参数名称:key'

然后我发现了如何从浏览器管理面板获取所有馆藏:

from @all_docs select distinct @metadata.@collection

如何将该代码段转换为c#代码?

2 个答案:

答案 0 :(得分:2)

如果您没有在文档存储级别分配数据库,则需要明确指定它,如下所示:

var collectionStats = store.Maintenance.ForDatabase("db-name").Send(op);

答案 1 :(得分:0)

我发现了一个线索 - 我的DocumentStore变量没有指定的数据库(它是在OpenSession构造函数中分配的):

//Wrong variant
IDocumentStore store = new DocumentStore()
{
    Urls = new string[] { Host }, /*Database = "testdb"*/
}

using (IDocumentSession session = store.OpenSession(dbName))
{
    //some code
}



//Good variant
IDocumentStore store = new DocumentStore()
{
     Urls = new string[] { Host }, Database = "testdb"
}

using (IDocumentSession session = store.OpenSession())
{
     //some code
}