3
我需要能夠在運行時使用OR陳述來構建查詢。如果我使用下面的方法來構建查詢,那麼所有內容都是AND。我真的需要每個過濾器值爲OR,以便此查詢正常工作。RavenDB - 使用OR過濾器構建動態查詢
public class IdAndRole
{
public string Id {get;set;}
public string Role {get;set;}
}
var idAndRoles = session.Query<IdAndRole, Roles_ById>();
foreach(var filter in filterValues)
{
idAndRoles = idAndRoles.Where(x => x.In(filter.Id) && x.In(filter.Role));
}
僞代碼:
(filter[0].Id == value1 && filter[0].Role == role1) ||(filter[1].Id == value2 && filter[1].Role == role2)
這是特定於RavenDB Linq提供程序。 Predicate Builder不存在於RavenDB – Phil 2012-03-19 21:06:07
@Phil - 不,但您可以獲得源代碼。它構建了一個應該工作得很好的表達式。我正在使用一些類似的技巧在我的一個RavenDB項目中構建表達式。 – tvanfosson 2012-03-19 21:10:53