RavenDb 4.0.0-beta-40018の動的プロパティを含むエンティティにクエリを実行したいが、それを行う方法がわからない。RavenDB(4.0-beta):動的属性をフルテキスト検索する方法
class Foo {
public int Id { get; set; }
public DateTime CreatedAt { get; set; }
public string Name { get; set; }
public dynamic Attributes { get; set; }
}
{
"Attributes": {
"IsFeatured": true
},
"CreatedAt": "2017-08-30T15:53:21.1881668Z",
"Name": "Featured Foo"
}
これは私が使用しようとしたクエリです。私はコンパイルエラー(Error: An expression tree may not contain a dynamic operation
)を取得していますよう
const string propertyName = "IsFeatured";
var results = session.Query<Foo>()
.Where(x => x.Attributes != null)
.Where(x => x.Attributes[propertyName] != null)
.Where(x => x.Attributes[propertyName] == true);
悲しいことに、私もこのコードをコンパイルすることはできません。
これは、動的属性で(ravendbを使用して)検索するための良いアプローチではないと思います。より良いアプローチがありますか?
良い質問。私はRavenDB 3.5までは、var results = DocumentSession.Advanced.LuceneQuery() .Where( "Attributes.IsFeatured:true") .ToList(); 'を使うことができると信じていますが、LuceneQueryはRQLのために推奨されていません私はこれが今どのように行われているのか分かりません。 –
FYI:Ravenクエリ言語(RQL)はRaven 3.5にはありません。それはRaven 4.0になります。 –