0

是否可以在创建查询后添加多个 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 是否完全支持第二个示例?为什么这两个查询不等效?

4

1 回答 1

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();
于 2012-08-13T10:27:44.823 回答