@@ -214,12 +214,12 @@ public void Linq_Enumerables()
214214 TestExpr < User > ( x => x . Phones . Last ( ) , "$.Phones[-1]" ) ;
215215
216216 // contains
217- TestExpr < User > ( x => x . PhoneNumbers . Contains ( 1234 ) , "PhoneNumbers ANY = @p0" , 1234 ) ;
218- TestExpr < User > ( x => x . Phones2 . Contains ( new Phone { Number = 1 } ) , "Phones2 ANY = { Number: @p0 }" , 1 ) ;
217+ TestExpr < User > ( x => x . PhoneNumbers . AsEnumerable ( ) . Contains ( 1234 ) , "PhoneNumbers ANY = @p0" , 1234 ) ;
218+ TestExpr < User > ( x => x . Phones2 . AsEnumerable ( ) . Contains ( new Phone { Number = 1 } ) , "Phones2 ANY = { Number: @p0 }" , 1 ) ;
219219
220220 // negated contains
221- TestExpr < User > ( x => ! x . PhoneNumbers . Contains ( 1234 ) , "(PhoneNumbers ANY = @p0) = false" , 1234 ) ;
222- TestExpr < User > ( x => ! x . Phones2 . Contains ( new Phone { Number = 1 } ) , "(Phones2 ANY = { Number: @p0 }) = false" , 1 ) ;
221+ TestExpr < User > ( x => ! x . PhoneNumbers . AsEnumerable ( ) . Contains ( 1234 ) , "(PhoneNumbers ANY = @p0) = false" , 1234 ) ;
222+ TestExpr < User > ( x => ! x . Phones2 . AsEnumerable ( ) . Contains ( new Phone { Number = 1 } ) , "(Phones2 ANY = { Number: @p0 }) = false" , 1 ) ;
223223
224224 // fixed position with filter expression
225225 TestExpr < User > ( x => x . Phones . First ( p => p . Number == 1 ) , "FIRST(FILTER($.Phones=>(@.Number=@p0)))" , 1 ) ;
@@ -265,7 +265,7 @@ public void Linq_Predicate()
265265 var numbersArrayList = new ArrayList ( ) { 1 , 2 , 3 } ;
266266 var numbersBson = new BsonArray ( numbersArray . Select ( x => new BsonValue ( x ) ) ) ;
267267
268- TestExpr < User > ( x => numbersArray . Contains ( x . Id ) , "@p0 ANY = _id" , numbersBson ) ;
268+ TestExpr < User > ( x => Enumerable . Contains ( numbersArray , x . Id ) , "@p0 ANY = _id" , numbersBson ) ;
269269 TestExpr < User > ( x => numbersList . Contains ( x . Id ) , "@p0 ANY = _id" , numbersBson ) ;
270270 TestExpr < User > ( x => numbersSet . Contains ( x . Id ) , "@p0 ANY = _id" , numbersBson ) ;
271271 TestExpr < User > ( x => numbersArrayList . Contains ( x . Id ) , "@p0 ANY = _id" , numbersBson ) ;
@@ -495,8 +495,8 @@ public void Linq_Array_Contains()
495495 var ids = new int [ ] { 1 , 2 , 3 } ;
496496 //var ids = new List<int> { 1, 2, 3 }; // works too
497497
498- // the result are correct, but can be optimize (in QueryOptimzier ) to `$._id IN @p0` (index will be used)
499- TestExpr < User > ( x => ids . Contains ( x . Id ) , "@p0 ANY = $._id" , new BsonArray { 1 , 2 , 3 } ) ;
498+ // the result are correct, but can be optimized (in QueryOptimizer ) to `$._id IN @p0` (index will be used)
499+ TestExpr < User > ( x => Enumerable . Contains ( ids , x . Id ) , "@p0 ANY = $._id" , new BsonArray { 1 , 2 , 3 } ) ;
500500
501501 TestExpr < User > ( x => ids . Where ( q => q == x . Id ) . Count ( ) > 0 , "(COUNT(FILTER(@p0 => (@=$._id))) > @p1)" , new BsonArray { 1 , 2 , 3 } , 0 ) ;
502502 }
0 commit comments