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 が含まれています。アクセスできるようにするために、これらのフィールドを保存する必要がありますか?