@@ -74,27 +74,23 @@ public void Test_Define_SubQuery()
7474 public void Test_Define_Parameter_SubQuery ( )
7575 {
7676
77- var subquery = new Query ( "Products" )
78- . AsAverage ( "unitprice" )
79- . DefineParameter ( "@UnitsInSt" , 10 )
80- . Where ( "UnitsInStock" , ">" , Variable ( "@UnitsInSt" ) )
81- . Where ( "UnitsInStock" , ">" , Variable ( "@UnitsInSt" ) ) ;
82-
8377 var query = new Query ( "Products" )
84- . Where ( "unitprice ", ">" , subquery )
85- . Where ( "UnitsOnOrder" , ">" , 5 ) ;
86-
87- var c = Compile ( query ) ;
88-
89- Assert . Equal ( "SELECT * FROM [Products] WHERE [unitprice] > (SELECT AVG([unitprice]) AS [avg] FROM [Products] WHERE" +
90- " [UnitsInStock] > 10 AND [UnitsInStock] > 10) AND [UnitsOnOrder] > 5" , c [ EngineCodes . SqlServer ] ) ;
78+ . DefineParameter ( "@a ", 1 )
79+ . DefineParameter ( "@b" , "b" )
80+ . Where ( q => q . Where ( "a" , "=" , Variable ( "@a" ) ) )
81+ . OrWhere ( q =>
82+ q . Where ( "a" , "=" , Variable ( "@a" ) )
83+ . Where ( "b" , ">" , Variable ( "@b" ) )
84+ . Where ( "a" , ">" , 0 ) ) ;
9185
9286 var s = Compilers . Compile ( query ) [ EngineCodes . SqlServer ] ;
93- Assert . Equal ( 2 , s . NamedBindings . Count ) ;
87+ Assert . Equal ( "SELECT * FROM [Products] WHERE ([a] = @a) OR ([a] = @a AND [b] > @b AND [a] > @p3)" , s . Sql ) ;
88+ Assert . Equal ( 3 , s . NamedBindings . Count ) ;
9489 var expected = new Dictionary < string , object > ( )
9590 {
96- { "@UnitsInSt" , 10 } ,
97- { "@p2" , 5 }
91+ { "@a" , 1 } ,
92+ { "@b" , "b" } ,
93+ { "@p3" , 0 }
9894 } ;
9995 Assert . Equal ( expected , s . NamedBindings ) ;
10096 }
0 commit comments