2010-06-28 44 views
3

我想写我自己的简单的桌面基于RavenDB浏览器,类似于Web UI。这主要是为了学习乌鸦。如何创建一个RavenDB资源管理器?

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

我应该使用什么API来执行此任务?

回答

3

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

您需要直接与Json一起工作,因为您不知道类型。这就是Web UI的功能。我建议通过Java脚本代码来查看它是如何完成的。

此外,总是有一个名为“Raven/DocumentsByEntityName”的默认索引,您可以查询。这将索引存储在文档元数据中的“Raven-Entity-Name”(对应于CLR类型)。这就是Raven使用它来允许它将Json转换为CLR类型。见the docs更多信息

+0

太糟糕了。我希望有一种方法可以在不采用JSon的情况下遍历集合。 – 2010-06-28 18:14:16

7

下面将提取所有RavenDB文档JSON:

var docStore = new DocumentStore { Url = "http://localhost:8080" }; 
using (docStore.Initialize()) 
{ 
    var docs = docStore 
     .DatabaseCommands 
     .Query("Raven/DocumentsByEntityName", new IndexQuery()); 
}