55// Created: 2009.05.06
66
77using System . Collections . Generic ;
8- using System . Linq ;
98using System . Linq . Expressions ;
109using Xtensive . Core ;
1110using Xtensive . Orm . Linq . Expressions . Visitors ;
@@ -139,9 +138,12 @@ public ItemProjectorExpression EnsureEntityIsJoined()
139138 var joinedIndex = typeInfo . Indexes . PrimaryIndex ;
140139 var joinedRs = joinedIndex . GetQuery ( ) . Alias ( Context . GetNextAlias ( ) ) ;
141140 var keySegment = entityExpression . Key . Mapping ;
142- var keyPairs = keySegment . GetItems ( )
143- . Select ( ( leftIndex , rightIndex ) => new Pair < int > ( leftIndex , rightIndex ) )
144- . ToArray ( ) ;
141+ var keyPairs = new Pair < int > [ keySegment . Length ] ;
142+ var rightIndex = 0 ;
143+ foreach ( var leftIndex in keySegment . GetItems ( ) ) {
144+ keyPairs [ rightIndex ] = new Pair < int > ( leftIndex , rightIndex ) ;
145+ rightIndex ++ ;
146+ }
145147 var offset = dataSource . Header . Length ;
146148 var dataSourceAsJoin = dataSource as JoinProvider ;
147149 dataSource = entityExpression . IsNullable || ( dataSourceAsJoin != null && dataSourceAsJoin . JoinType == JoinType . LeftOuter )
@@ -158,9 +160,12 @@ public ItemProjectorExpression EnsureEntityIsJoined()
158160 var joinedIndex = typeInfo . Indexes . PrimaryIndex ;
159161 var joinedRs = joinedIndex . GetQuery ( ) . Alias ( Context . GetNextAlias ( ) ) ;
160162 var keySegment = entityFieldExpression . Mapping ;
161- var keyPairs = keySegment . GetItems ( )
162- . Select ( ( leftIndex , rightIndex ) => new Pair < int > ( leftIndex , rightIndex ) )
163- . ToArray ( ) ;
163+ var keyPairs = new Pair < int > [ keySegment . Length ] ;
164+ var rightIndex = 0 ;
165+ foreach ( var leftIndex in keySegment . GetItems ( ) ) {
166+ keyPairs [ rightIndex ] = new Pair < int > ( leftIndex , rightIndex ) ;
167+ rightIndex ++ ;
168+ }
164169 var offset = dataSource . Header . Length ;
165170 var dataSourceAsJoin = dataSource as JoinProvider ;
166171 dataSource = entityFieldExpression . IsNullable || ( dataSourceAsJoin != null && dataSourceAsJoin . JoinType == JoinType . LeftOuter )
0 commit comments