This repository was archived by the owner on Dec 24, 2022. It is now read-only.
File tree Expand file tree Collapse file tree 2 files changed +11
-2
lines changed
ServiceStack.OrmLite.SqlServerTests/Expressions
ServiceStack.OrmLite.SqlServer Expand file tree Collapse file tree 2 files changed +11
-2
lines changed Original file line number Diff line number Diff line change @@ -26,7 +26,9 @@ public override string ToSelectStatement()
26
26
27
27
sql = base . ToSelectStatement ( ) ;
28
28
if ( sql == null || sql . Length < "SELECT" . Length ) return sql ;
29
- sql = "SELECT TOP " + take + " " + sql . Substring ( "SELECT" . Length , sql . Length - "SELECT" . Length ) ;
29
+ bool hasDistinctInBaseQuery = sql . StartsWithIgnoreCase ( "SELECT DISTINCT" ) ;
30
+ string stringToRemoveFromBaseQuery = hasDistinctInBaseQuery ? "SELECT DISTINCT" : "SELECT" ;
31
+ sql = stringToRemoveFromBaseQuery + " TOP " + take + " " + sql . Substring ( stringToRemoveFromBaseQuery . Length , sql . Length - stringToRemoveFromBaseQuery . Length ) ;
30
32
return sql ;
31
33
}
32
34
Original file line number Diff line number Diff line change @@ -224,12 +224,19 @@ public void AuthorUsesCases()
224
224
Assert . AreEqual ( "Rodger Contreras" . ToUpper ( ) , author . Name ) ;
225
225
226
226
// select distinct..
227
- ev . Limit ( ) . OrderBy ( ) ; // clear limit, clear order for postres
227
+ ev . Limit ( ) . OrderBy ( ) ; // clear limit, clear orde
228
228
ev . SelectDistinct ( r => r . City ) ;
229
229
expected = 6 ;
230
230
result = db . Select ( ev ) ;
231
231
Assert . AreEqual ( expected , result . Count ) ;
232
232
233
+ // select distinct with limit
234
+ ev . Limit ( 0 , 4 ) ;
235
+ ev . SelectDistinct ( r => r . City ) ;
236
+ expected = 4 ;
237
+ result = db . Select ( ev ) ;
238
+ Assert . AreEqual ( expected , result . Count ) ;
239
+
233
240
ev . Select ( r => Sql . As ( Sql . Max ( r . Birthday ) , "Birthday" ) ) ;
234
241
result = db . Select ( ev ) ;
235
242
var expectedResult = authors . Max ( r => r . Birthday ) ;
You can’t perform that action at this time.
0 commit comments