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