如何创建RavenDB资源管理器?

时间:2010-06-28 08:05:17

标签: ravendb

我想编写自己的基于简单桌面的RavenDB资源管理器,类似于Web UI。这主要是为了学习Raven。

所以我的第一个任务是从数据库中读取所有文档,无论它们属于哪个应用程序。我想使用客户端API实现这一点,但似乎session.Query和session.LuceneQuery都需要类说明符。

我应该使用什么API来完成这项任务?

2 个答案:

答案 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