@@ -234,6 +234,23 @@ internal void ToListChunkPrivate(int chunkSize, Action<FetchCallbackArgs<List<T1
234234 }
235235 public void ToChunk ( int size , Action < FetchCallbackArgs < List < T1 > > > done )
236236 {
237+ if ( _diymemexpWithTempQuery != null && _diymemexpWithTempQuery is WithTempQueryParser withTempQueryParser )
238+ {
239+ if ( withTempQueryParser . _outsideTable [ 0 ] != _tables [ 0 ] )
240+ {
241+ var tps = _tables . Select ( a =>
242+ {
243+ var tp = Expression . Parameter ( a . Table . Type , a . Alias ) ;
244+ a . Parameter = tp ;
245+ return tp ;
246+ } ) . ToArray ( ) ;
247+ this . InternalToChunk < T1 > ( tps [ 0 ] , size , done ) ;
248+ return ;
249+ }
250+ var af = withTempQueryParser . _insideSelectList [ 0 ] . InsideAf ;
251+ this . ToListMrChunkPrivate ( size , done , this . ToSql ( af . field ) , af ) ;
252+ return ;
253+ }
237254 if ( _selectExpression != null ) throw new ArgumentException ( CoreErrorStrings . Before_Chunk_Cannot_Use_Select ) ;
238255 this . ToListChunkPrivate ( size , done , this . GetAllFieldExpressionTreeLevel2 ( ) , null ) ;
239256 }
@@ -1769,6 +1786,24 @@ internal IAsyncEnumerable<List<T1>> ToListChunkPrivateAsyncEnumerable(int chunkS
17691786 }
17701787 public IAsyncEnumerable < List < T1 > > ToChunkAsyncEnumerable ( int size )
17711788 {
1789+ if ( _diymemexpWithTempQuery != null && _diymemexpWithTempQuery is WithTempQueryParser withTempQueryParser )
1790+ {
1791+ if ( withTempQueryParser . _outsideTable [ 0 ] != _tables [ 0 ] )
1792+ {
1793+ var tps = _tables . Select ( a =>
1794+ {
1795+ var tp = Expression . Parameter ( a . Table . Type , a . Alias ) ;
1796+ a . Parameter = tp ;
1797+ return tp ;
1798+ } ) . ToArray ( ) ;
1799+ return this . InternalToChunkAsyncEnumerable < T1 > ( tps [ 0 ] , size ) ;
1800+ }
1801+ var af = withTempQueryParser . _insideSelectList [ 0 ] . InsideAf ;
1802+ return new LocalAsyncEnumerable < T1 >
1803+ {
1804+ _GetAsyncEnumerator = ( cancellationToken ) => this . ToListMrChunkPrivateAsyncEnumerable < T1 > ( size , this . ToSql ( af . field ) , af , cancellationToken )
1805+ } ;
1806+ }
17721807 if ( _selectExpression != null ) throw new ArgumentException ( CoreErrorStrings . Before_Chunk_Cannot_Use_Select ) ;
17731808 return this . ToListChunkPrivateAsyncEnumerable ( size , this . GetAllFieldExpressionTreeLevel2 ( ) , null ) ;
17741809 }
0 commit comments