Skip to content

Commit 11e2df3

Browse files
committed
Use intermediate vars instead of complex expression in CreateLocalCollectionProjectionExpression()
1 parent 20e899f commit 11e2df3

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

Orm/Xtensive.Orm/Orm/Linq/Translator.Expressions.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1593,16 +1593,17 @@ private static Expression MakeBooleanExpression(Expression previous, Expression
15931593
private static ProjectionExpression CreateLocalCollectionProjectionExpression(Type itemType, object value, Translator translator, Expression sourceExpression)
15941594
{
15951595
var storedEntityType = translator.State.TypeOfEntityStoredInKey;
1596-
var itemToTupleConverter = ItemToTupleConverter.BuildConverter(itemType, storedEntityType, value, translator.context.Model, sourceExpression);
1596+
var translatorContext = translator.context;
1597+
var itemToTupleConverter = ItemToTupleConverter.BuildConverter(itemType, storedEntityType, value, translatorContext.Model, sourceExpression);
15971598
var tupleDescriptor = itemToTupleConverter.TupleDescriptor;
15981599
var columns = tupleDescriptor
1599-
.Select(x => new SystemColumn(translator.context.GetNextColumnAlias(), 0, x))
1600+
.Select(x => new SystemColumn(translatorContext.GetNextColumnAlias(), 0, x))
16001601
.Cast<Column>()
16011602
.ToArray(tupleDescriptor.Count);
16021603
var rsHeader = new RecordSetHeader(tupleDescriptor, columns);
16031604
var rawProvider = new RawProvider(rsHeader, itemToTupleConverter.GetEnumerable());
16041605
var recordset = new StoreProvider(rawProvider);
1605-
var itemProjector = new ItemProjectorExpression(itemToTupleConverter.Expression, recordset, translator.context);
1606+
var itemProjector = new ItemProjectorExpression(itemToTupleConverter.Expression, recordset, translatorContext);
16061607
if (translator.State.JoinLocalCollectionEntity)
16071608
itemProjector = EntityExpressionJoiner.JoinEntities(translator, itemProjector);
16081609
return new ProjectionExpression(itemType, itemProjector, TranslatedQuery.EmptyTupleParameterBindings);

0 commit comments

Comments
 (0)