0

我想为我的 Raven 数据库中的每个文档获取 Raven-Clr 类型。我尝试了以下索引,但仅检索文档 ID:

地图:

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。

注意 我按照 Fitzchak 的建议检查了 Raven-Entity-Name。它是人口。

编辑

在 Google Groups 上发现了这种方法,其中 Map 被更改为包含

DocumentType = ((dynamic)doc)[""@metadata""][""Raven-Entity-Name""]

结果是一样的。

编辑 2

我检查了 RavenStudio 中的查询结果,投影本身包含 LastModified 和 DocumentType 的 null。这些字段是否需要存储才能访问?

4

1 回答 1

1

RavenDB Studio 使用Raven/DocumentsByEntityName由工作室创建的索引(默认情况下)。它是一个简单的索引(仅限地图)。

地图:

from doc in docs 
let Tag = doc["@metadata"]["Raven-Entity-Name"]
select new { Tag, LastModified = (DateTime)doc["@metadata"]["Last-Modified"] };
于 2012-10-31T11:33:04.330 回答