3

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

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

我应该为这个任务使用什么 API?

4

2 回答 2

7

下面将提取 Json 中的所有 RavenDB 文档:

var docStore = new DocumentStore { Url = "http://localhost:8080" };
using (docStore.Initialize())
{
    var docs = docStore
        .DatabaseCommands
        .Query("Raven/DocumentsByEntityName", new IndexQuery());
}
于 2010-06-30T07:41:37.163 回答
3

客户端 API 需要一个类型,因为它旨在与 CLR POCO 一起使用,因此可以为您处理转换(来自 Json)。

由于您不知道类型,因此您需要直接使用 Json。这就是 Web UI 的作用。我建议查看 Java 脚本代码以了解它是如何完成的。

此外,您始终可以查询一个名为“Raven/DocumentsByEntityName”的默认索引。这会索引存储在文档元数据中的“Raven-Entity-Name”(对应于 CLR 类型)。这是 Raven 用来将 Json 转换为 CLR 类型的方法。有关更多信息,请参阅文档

于 2010-06-28T13:16:12.473 回答