@@ -166,13 +166,14 @@ public override object Execute()
166166 cursor . SetLimit ( ToInt32 ( _take ) ) ;
167167 }
168168
169+ var projection = _projection ;
169170 if ( _ofType != null )
170171 {
171- if ( _projection == null )
172+ if ( projection == null )
172173 {
173174 var paramExpression = Expression . Parameter ( DocumentType , "x" ) ;
174175 var convertExpression = Expression . Convert ( paramExpression , _ofType ) ;
175- _projection = Expression . Lambda ( convertExpression , paramExpression ) ;
176+ projection = Expression . Lambda ( convertExpression , paramExpression ) ;
176177 }
177178 else
178179 {
@@ -182,19 +183,19 @@ public override object Execute()
182183 }
183184
184185 IEnumerable enumerable ;
185- if ( _projection == null )
186+ if ( projection == null )
186187 {
187188 enumerable = cursor ;
188189 }
189190 else
190191 {
191- var lambdaType = _projection . GetType ( ) ;
192+ var lambdaType = projection . GetType ( ) ;
192193 var delegateType = lambdaType . GetGenericArguments ( ) [ 0 ] ;
193194 var sourceType = delegateType . GetGenericArguments ( ) [ 0 ] ;
194195 var resultType = delegateType . GetGenericArguments ( ) [ 1 ] ;
195196 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 ) ;
198199 enumerable = ( IEnumerable ) projector ;
199200 }
200201
0 commit comments