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()
2626
2727 sql = base . ToSelectStatement ( ) ;
2828 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 ) ;
3032 return sql ;
3133 }
3234
Original file line number Diff line number Diff line change @@ -224,12 +224,19 @@ public void AuthorUsesCases()
224224 Assert . AreEqual ( "Rodger Contreras" . ToUpper ( ) , author . Name ) ;
225225
226226 // select distinct..
227- ev . Limit ( ) . OrderBy ( ) ; // clear limit, clear order for postres
227+ ev . Limit ( ) . OrderBy ( ) ; // clear limit, clear orde
228228 ev . SelectDistinct ( r => r . City ) ;
229229 expected = 6 ;
230230 result = db . Select ( ev ) ;
231231 Assert . AreEqual ( expected , result . Count ) ;
232232
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+
233240 ev . Select ( r => Sql . As ( Sql . Max ( r . Birthday ) , "Birthday" ) ) ;
234241 result = db . Select ( ev ) ;
235242 var expectedResult = authors . Max ( r => r . Birthday ) ;
You can’t perform that action at this time.
0 commit comments