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();

2番目の例はravendbでサポートされていますか?そして、なぜ2つのクエリが同等ではないのですか?

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 に答える