File tree Expand file tree Collapse file tree
Orm/Xtensive.Orm/Orm/Providers Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -310,10 +310,18 @@ protected override SqlProvider VisitSelect(SelectProvider provider)
310310 {
311311 var compiledSource = Compile ( provider . Source ) ;
312312
313- SqlSelect query = ExtractSqlSelect ( provider , compiledSource ) ;
314- var originalColumns = query . Columns . ToList ( ) ;
315- query . Columns . Clear ( ) ;
316- query . Columns . AddRange ( provider . ColumnIndexes . Select ( i => originalColumns [ i ] ) ) ;
313+ var query = ExtractSqlSelect ( provider , compiledSource ) ;
314+ var queryColumns = query . Columns ;
315+ var columnIndexes = provider . ColumnIndexes ;
316+
317+ var newIndex = 0 ;
318+ var newColumns = new SqlColumn [ columnIndexes . Count ] ;
319+ foreach ( var index in columnIndexes ) {
320+ newColumns [ newIndex ++ ] = queryColumns [ index ] ;
321+ }
322+
323+ queryColumns . Clear ( ) ;
324+ queryColumns . AddRange ( newColumns ) ;
317325
318326 return CreateProvider ( query , provider , compiledSource ) ;
319327 }
You can’t perform that action at this time.
0 commit comments