@@ -32,15 +32,35 @@ public void Does_merge_subselect_params_correctly()
3232 ids . Where ( x => x . HasA == true && x . HasB == true && x . HasC == true ) ;
3333 ids . SelectDistinct ( x => x . OrganizationId ) ;
3434
35- // select organizations
36- var expression = OrmLiteConfig . DialectProvider . SqlExpression < Organization > ( ) ;
37- // that are active
38- expression . Where ( x => x . IsActive == true ) ;
39- // and belong to the same group
40- expression . Where ( x => Sql . In ( x . Id , ids ) ) ;
41-
42- Assert . That ( expression . WhereExpression , Is . EqualTo (
35+ //0 params
36+ var q = OrmLiteConfig . DialectProvider . SqlExpression < Organization > ( ) ;
37+ q . Where ( x => Sql . In ( x . Id , ids ) ) ;
38+ Assert . That ( q . WhereExpression , Is . EqualTo (
39+ "WHERE \" Id\" IN (SELECT DISTINCT \" OrganizationId\" \n FROM \" OrganizationMembership\" \n WHERE (((\" HasA\" = @0) AND (\" HasB\" = @1)) AND (\" HasC\" = @2)))" ) ) ;
40+
41+ //1 param
42+ q = OrmLiteConfig . DialectProvider . SqlExpression < Organization > ( ) ;
43+ q . Where ( x => x . IsActive == true ) ;
44+ q . Where ( x => Sql . In ( x . Id , ids ) ) ;
45+ Assert . That ( q . WhereExpression , Is . EqualTo (
4346 "WHERE (\" IsActive\" = @0) AND \" Id\" IN (SELECT DISTINCT \" OrganizationId\" \n FROM \" OrganizationMembership\" \n WHERE (((\" HasA\" = @1) AND (\" HasB\" = @2)) AND (\" HasC\" = @3)))" ) ) ;
47+
48+ //2 params
49+ q = OrmLiteConfig . DialectProvider . SqlExpression < Organization > ( ) ;
50+ q . Where ( x => x . IsActive == true ) ;
51+ q . Where ( x => x . IsActive == true ) ;
52+ q . Where ( x => Sql . In ( x . Id , ids ) ) ;
53+ Assert . That ( q . WhereExpression , Is . EqualTo (
54+ "WHERE (\" IsActive\" = @0) AND (\" IsActive\" = @1) AND \" Id\" IN (SELECT DISTINCT \" OrganizationId\" \n FROM \" OrganizationMembership\" \n WHERE (((\" HasA\" = @2) AND (\" HasB\" = @3)) AND (\" HasC\" = @4)))" ) ) ;
55+
56+ //3 params
57+ q = OrmLiteConfig . DialectProvider . SqlExpression < Organization > ( ) ;
58+ q . Where ( x => x . IsActive == true ) ;
59+ q . Where ( x => x . IsActive == true ) ;
60+ q . Where ( x => x . IsActive == true ) ;
61+ q . Where ( x => Sql . In ( x . Id , ids ) ) ;
62+ Assert . That ( q . WhereExpression , Is . EqualTo (
63+ "WHERE (\" IsActive\" = @0) AND (\" IsActive\" = @1) AND (\" IsActive\" = @2) AND \" Id\" IN (SELECT DISTINCT \" OrganizationId\" \n FROM \" OrganizationMembership\" \n WHERE (((\" HasA\" = @3) AND (\" HasB\" = @4)) AND (\" HasC\" = @5)))" ) ) ;
4464 }
4565 }
4666}
0 commit comments