Ravendb - 多个where子句?

时间:2012-08-13 09:55:22

标签: ravendb

在创建查询后是否可以添加多个where子句。例如,以下查询正确返回1结果:

var q1 = session.Query<Template>()
    .Where(x => x.Tags.Any(y => y == "one"))
    .Where(x => x.Tags.Any(y => y == " two"));
var r1 = q1.ToList();

但是这个表现就好像没有where条件并且返回30个结果:

var q2 = session.Query<Template>();
q2.Where(x => x.Tags.Any(y => y == "one"));
q2.Where(x => x.Tags.Any(y => y == " two"));
var r2 = q2.ToList();

ravendb是否支持第二个例子?为什么两个查询不等同?

1 个答案:

答案 0 :(得分:7)

它们不相同,因为您不使用组合查询。你必须改变你的代码:

var q2 = session.Query<Template>();
q2 = q2.Where(x => x.Tags.Any(y => y == "one"));
q2 = q2.Where(x => x.Tags.Any(y => y == " two"));
var r2 = q2.ToList();