Skip to content

Commit 3a9eb73

Browse files
author
rstam
committed
Minor fix to SelectQuery Execute method (use temp variable so _projection isn't overwritten).
1 parent 78de407 commit 3a9eb73

File tree

1 file changed

+7
-6
lines changed

1 file changed

+7
-6
lines changed

Driver/Linq/Translators/SelectQuery.cs

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)