我有一個包含「tags」列表的文檔類。喜歡的東西:Linq查詢包含多個Contains/Any for RavenDB
class Item {
string Name { get; set; }
List<string> Tags {get; set;}
}
現在我想創造一個RavenDB查詢遞給我用的標籤列表過濾的所有項目。當使用實體框架,我設法通過這樣的事情要做到這一點:
var query = GetQueryable();
foreach (var tag in tags)
{
query = query.Where(i => i.Tags.Contains(tag));
}
然而,這似乎並沒有與RavenDB工作,很可能是因爲含有不被支持。我也試着重寫它使用任何(Where(i => i.Tags.Any(t=>t == tag))
),但給了我一個奇怪的例外:
Unable to cast object of type
'System.Linq.Expressions.PrimitiveParameterExpression`1[System.String]'
to type 'System.Linq.Expressions.MemberExpression
任何偉大的想法?我完全錯了嗎?
什麼是'GetQueryable()'返回類型?你在做什麼'query = query.Where(i => i.Tags.Contains(tag));'?什麼是查詢類型? – 2010-11-17 20:16:49
GetQueryable()返回一個IQueryable- 。我確實可以訪問整個DocumentSession,所以這只是一個例子。 –
CodingInsomnia
2010-11-18 10:15:22