File tree Expand file tree Collapse file tree 2 files changed +30
-30
lines changed Expand file tree Collapse file tree 2 files changed +30
-30
lines changed Original file line number Diff line number Diff line change @@ -70,7 +70,36 @@ public static IOrderedQueryable<T> OrderBy<T>(
70
70
{
71
71
try
72
72
{
73
- return QueryableExtension . OrderBy ( source , selector ) ;
73
+ selector = $ "{ selector } ";
74
+
75
+ if ( selector . Contains ( "=>" ) )
76
+ {
77
+ var identifierName = selector . Split ( "=>" ) [ 0 ] ;
78
+
79
+ selector = selector . Replace ( $ "{ identifierName } =>", "" ) . Trim ( ) ;
80
+
81
+ string methodAsc = "OrderBy" ;
82
+ string methodDesc = "OrderByDescending" ;
83
+
84
+ Expression expression = source . Expression ;
85
+
86
+ foreach ( var part in selector . Split ( "," ) )
87
+ {
88
+ var lambda = ExpressionParser . ParseLambda < T > ( $ "{ identifierName . Trim ( ) } => { part } ") ;
89
+
90
+ expression = Expression . Call (
91
+ typeof ( Queryable ) , part . Trim ( ) . ToLower ( ) . Contains ( " desc" ) ? methodDesc : methodAsc ,
92
+ new Type [ ] { source . ElementType , lambda . ReturnType } ,
93
+ expression , Expression . Quote ( lambda ) ) ;
94
+
95
+ methodAsc = "ThenBy" ;
96
+ methodDesc = "ThenByDescending" ;
97
+ }
98
+
99
+ return ( IOrderedQueryable < T > ) source . Provider . CreateQuery ( expression ) ;
100
+ }
101
+
102
+ return ( IOrderedQueryable < T > ) QueryableExtension . OrderBy ( ( IQueryable ) source , selector ) ;
74
103
}
75
104
catch ( Exception ex )
76
105
{
Original file line number Diff line number Diff line change @@ -108,35 +108,6 @@ internal static string RemoveVariableReference(string expression)
108
108
/// <returns>A <see cref="IQueryable{T}"/> whose elements are sorted according to the specified <paramref name="selector"/>.</returns>
109
109
public static IOrderedQueryable < T > OrderBy < T > ( this IQueryable < T > source , string selector = null )
110
110
{
111
- selector = $ "{ selector } ";
112
-
113
- if ( selector . Contains ( "=>" ) )
114
- {
115
- var identifierName = selector . Split ( "=>" ) [ 0 ] ;
116
-
117
- selector = selector . Replace ( $ "{ identifierName } =>", "" ) . Trim ( ) ;
118
-
119
- string methodAsc = "OrderBy" ;
120
- string methodDesc = "OrderByDescending" ;
121
-
122
- Expression expression = source . Expression ;
123
-
124
- foreach ( var part in selector . Split ( "," ) )
125
- {
126
- var lambda = ExpressionParser . ParseLambda < T > ( $ "{ identifierName . Trim ( ) } => { part } ") ;
127
-
128
- expression = Expression . Call (
129
- typeof ( Queryable ) , part . Trim ( ) . ToLower ( ) . Contains ( " desc" ) ? methodDesc : methodAsc ,
130
- new Type [ ] { source . ElementType , lambda . ReturnType } ,
131
- expression , Expression . Quote ( lambda ) ) ;
132
-
133
- methodAsc = "ThenBy" ;
134
- methodDesc = "ThenByDescending" ;
135
- }
136
-
137
- return ( IOrderedQueryable < T > ) source . Provider . CreateQuery ( expression ) ;
138
- }
139
-
140
111
return ( IOrderedQueryable < T > ) OrderBy ( ( IQueryable ) source , selector ) ;
141
112
}
142
113
You can’t perform that action at this time.
0 commit comments