我想编写自己的基于简单桌面的RavenDB资源管理器,类似于Web UI。这主要是为了学习Raven。
所以我的第一个任务是从数据库中读取所有文档,无论它们属于哪个应用程序。我想使用客户端API实现这一点,但似乎session.Query和session.LuceneQuery都需要类说明符。
我应该使用什么API来完成这项任务?
答案 0 :(得分:7)
下面将提取Json中的所有RavenDB文档:
var docStore = new DocumentStore { Url = "http://localhost:8080" };
using (docStore.Initialize())
{
var docs = docStore
.DatabaseCommands
.Query("Raven/DocumentsByEntityName", new IndexQuery());
}
答案 1 :(得分:3)
客户端API需要一个类型,因为它设计用于CLR POCO,因此为您处理转换(来自Json)。
您需要直接使用Json,因为您不知道类型。这就是Web UI的功能。我建议查看Java脚本代码,了解它是如何完成的。
此外,您始终可以查询名为“Raven / DocumentsByEntityName”的默认索引。这索引存储在文档元数据中的“Raven-Entity-Name”(对应于CLR类型)。这是Raven用来允许它将Json转换为CLR类型的东西。有关详细信息,请参阅the docs