我想为Raven数据库中的每个文档获取Raven-Clr类型 . 我已经尝试了以下索引,但我只检索文档Id:
Map :
from doc in docs
let DocumentType = doc[""@metadata""][""Raven-Entity-Name""]
let Id = doc[""@metadata""][""Id""]
let LastModified = (DateTime)doc[""@metadata""][""Last-Modified""]
select new {DocumentType = doc[""@metadata""][""Raven-Entity-Name""], Id, LastModified}
转变:
from result in results
select new {Id = result.Id, DocumentType = result.DocumentType, LastModified = result.LastModified}
我的目标是获取文档元数据并显示一个独特的收集/文档类型列表,如RavenStudio . 我想创建一个投影并填充以下类的列表:
public class MetaDocument
{
public string Id{get; set;}
public string DocumentType {get; set;}
public DateTime LastModified {get; set;}
}
我只能获取doc id,其他值将返回null .
Note 我按照Fitzchak的建议检查了Raven-Entity-Name . 它是人口 .
Edit
我找到了this approach on Google Groups,其中Map被改为包含
DocumentType = ((dynamic)doc)[""@metadata""][""Raven-Entity-Name""]
结果是一样的 .
Edit 2
我在RavenStudio中检查了查询结果,并且投影本身包含LastModified和DocumentType的null . 是否需要存储这些字段才能访问?
1 回答
RavenDB Studio使用
Raven/DocumentsByEntityName
索引,该索引由工作室创建(默认情况下) . 这是一个简单的索引(仅限 Map ) .Map :