以前版本中有这种方法 -
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#代码?
答案 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
}