在创建查询后是否可以添加多个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是否支持第二个例子?为什么两个查询不等同?
答案 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();