@@ -36,8 +36,7 @@ public static Expression<Func<T, bool>> ToFilterExpression<T>(
3636 this FilterQueryOption filterOption ,
3737 HandleNullPropagationOption handleNullPropagation = HandleNullPropagationOption . Default ,
3838 TimeZoneInfo timeZone = null ,
39- bool enableConstantParameterization = true ,
40- bool ensureStableOrdering = true )
39+ bool enableConstantParameterization = true )
4140 {
4241 if ( filterOption == null )
4342 return null ;
@@ -46,7 +45,7 @@ public static Expression<Func<T, bool>> ToFilterExpression<T>(
4645
4746 queryable = filterOption . ApplyTo (
4847 queryable ,
49- new ODataQuerySettings ( ) { HandleNullPropagation = handleNullPropagation , TimeZone = timeZone , EnableConstantParameterization = enableConstantParameterization , EnsureStableOrdering = ensureStableOrdering } ) ;
48+ new ODataQuerySettings ( ) { HandleNullPropagation = handleNullPropagation , TimeZone = timeZone , EnableConstantParameterization = enableConstantParameterization } ) ;
5049
5150 MethodCallExpression whereMethodCallExpression = ( MethodCallExpression ) queryable . Expression ;
5251
@@ -63,16 +62,15 @@ public static Expression<Func<T, bool>> ToSearchExpression<T>(
6362 this SearchQueryOption filterOption ,
6463 HandleNullPropagationOption handleNullPropagation = HandleNullPropagationOption . Default ,
6564 TimeZoneInfo timeZone = null ,
66- bool enableConstantParameterization = true ,
67- bool ensureStableOrdering = true )
65+ bool enableConstantParameterization = true )
6866 {
6967 if ( filterOption == null )
7068 return null ;
7169
7270 IQueryable queryable = Enumerable . Empty < T > ( ) . AsQueryable ( ) ;
7371 queryable = filterOption . ApplyTo (
7472 queryable ,
75- new ODataQuerySettings ( ) { HandleNullPropagation = handleNullPropagation , TimeZone = timeZone , EnableConstantParameterization = enableConstantParameterization , EnsureStableOrdering = ensureStableOrdering } ) ;
73+ new ODataQuerySettings ( ) { HandleNullPropagation = handleNullPropagation , TimeZone = timeZone , EnableConstantParameterization = enableConstantParameterization } ) ;
7674
7775 MethodCallExpression whereMethodCallExpression = ( MethodCallExpression ) queryable . Expression ;
7876
@@ -82,8 +80,7 @@ public static Expression<Func<T, bool>> ToSearchExpression<T>(
8280 public static Expression < Func < T , bool > > ToFilterExpression < T > ( this ODataQueryOptions < T > options ,
8381 HandleNullPropagationOption handleNullPropagation = HandleNullPropagationOption . Default ,
8482 TimeZoneInfo timeZone = null ,
85- bool enableConstantParameterization = true ,
86- bool ensureStableOrdering = true )
83+ bool enableConstantParameterization = true )
8784 {
8885 if ( options is null || options . Filter is null && options . Search is null )
8986 {
@@ -95,14 +92,14 @@ public static Expression<Func<T, bool>> ToFilterExpression<T>(this ODataQueryOpt
9592 Expression filterExpression = null ;
9693 if ( options . Filter is not null )
9794 {
98- var raw = options . Filter . ToFilterExpression < T > ( handleNullPropagation , timeZone , enableConstantParameterization , ensureStableOrdering ) ;
95+ var raw = options . Filter . ToFilterExpression < T > ( handleNullPropagation , timeZone , enableConstantParameterization ) ;
9996 filterExpression = raw . Body . ReplaceParameter ( raw . Parameters [ 0 ] , parameter ) ;
10097 }
10198
10299 Expression searchExpression = null ;
103100 if ( options . Search is not null )
104101 {
105- var raw = options . Search . ToSearchExpression < T > ( handleNullPropagation , timeZone , enableConstantParameterization , ensureStableOrdering ) ;
102+ var raw = options . Search . ToSearchExpression < T > ( handleNullPropagation , timeZone , enableConstantParameterization ) ;
106103 searchExpression = raw . Body . ReplaceParameter ( raw . Parameters [ 0 ] , parameter ) ;
107104 }
108105
@@ -190,11 +187,7 @@ public static Expression GetQueryableMethod(this Expression expression,
190187 }
191188
192189 if ( orderByClause is null && skip is null && top is null )
193- return null ;
194-
195- bool ensureStableOrdering = oDataSettings ? . EnsureStableOrdering ?? true ;
196- if ( orderByClause is null && ! ensureStableOrdering )
197- return expression . GetSkipCall ( skip ) . GetTakeCall ( top ) ;
190+ return null ;
198191
199192 if ( orderByClause is null && ( skip is not null || top is not null ) )
200193 {
@@ -203,6 +196,9 @@ public static Expression GetQueryableMethod(this Expression expression,
203196 if ( orderBySettings is null )
204197 return null ;
205198
199+ if ( oDataSettings ? . AlwaysSortByPrimaryKey is false )
200+ return expression . GetSkipCall ( skip ) . GetTakeCall ( top ) ;
201+
206202 return expression
207203 . GetDefaultOrderByCall ( orderBySettings )
208204 . GetSkipCall ( skip )
0 commit comments