我想用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"
}
這是我試過使用的查詢。
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);
可悲的是,我甚至不能因爲我得到一個編譯錯誤(Error: An expression tree may not contain a dynamic operation
)編譯的代碼。
我不認爲這是在動態屬性中搜索(使用ravendb)的好方法。有更好的方法嗎?
其實一個很好的問題。我相信,直到RavenDB 3.5,你可以使用'var results = DocumentSession.Advanced.LuceneQuery() 。Where(「Attributes.IsFeatured:true」) .ToList();',但是由於LuceneQuery被棄用而傾向於RQL我不知道現在如何做到這一點。 –
僅供參考:烏鴉查詢語言(RQL)不在烏鴉3.5中。它將在Raven 4.0中。 –