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