@@ -166,13 +166,14 @@ public override object Execute()
166
166
cursor . SetLimit ( ToInt32 ( _take ) ) ;
167
167
}
168
168
169
+ var projection = _projection ;
169
170
if ( _ofType != null )
170
171
{
171
- if ( _projection == null )
172
+ if ( projection == null )
172
173
{
173
174
var paramExpression = Expression . Parameter ( DocumentType , "x" ) ;
174
175
var convertExpression = Expression . Convert ( paramExpression , _ofType ) ;
175
- _projection = Expression . Lambda ( convertExpression , paramExpression ) ;
176
+ projection = Expression . Lambda ( convertExpression , paramExpression ) ;
176
177
}
177
178
else
178
179
{
@@ -182,19 +183,19 @@ public override object Execute()
182
183
}
183
184
184
185
IEnumerable enumerable ;
185
- if ( _projection == null )
186
+ if ( projection == null )
186
187
{
187
188
enumerable = cursor ;
188
189
}
189
190
else
190
191
{
191
- var lambdaType = _projection . GetType ( ) ;
192
+ var lambdaType = projection . GetType ( ) ;
192
193
var delegateType = lambdaType . GetGenericArguments ( ) [ 0 ] ;
193
194
var sourceType = delegateType . GetGenericArguments ( ) [ 0 ] ;
194
195
var resultType = delegateType . GetGenericArguments ( ) [ 1 ] ;
195
196
var projectorType = typeof ( Projector < , > ) . MakeGenericType ( sourceType , resultType ) ;
196
- var projection = _projection . Compile ( ) ;
197
- var projector = Activator . CreateInstance ( projectorType , cursor , projection ) ;
197
+ var compiledProjection = projection . Compile ( ) ;
198
+ var projector = Activator . CreateInstance ( projectorType , cursor , compiledProjection ) ;
198
199
enumerable = ( IEnumerable ) projector ;
199
200
}
200
201
0 commit comments