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;}
}

ドキュメント ID しか取得できず、他の値は null として返されます。

Fitzchak が提案したように、Raven-Entity-Name を確認したことに注意してください。それは人口です。

編集

マップが含まれるように変更されたGoogleグループでこのアプローチを見つけました

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 に答える