@@ -114,11 +114,11 @@ private IEnumeratorStreamMergeEngine<TEntity> DoNoOrderAppendEnumeratorStreamMer
114114 }
115115 }
116116
117- if ( isShardingDataSource && dataSourceSequenceOrderConfig != null )
118- {
119- return new AppendOrderSequenceEnumeratorAsyncStreamMergeEngine < TShardingDbContext , TEntity > ( _streamMergeContext , dataSourceSequenceOrderConfig , tableSequenceOrderConfig , _shardingPageManager . Current . RouteQueryResults ) ;
120- }
121- else if ( isShardingTable && tableSequenceOrderConfig != null )
117+ var useSequenceEnumeratorMergeEngine = isShardingDataSource && ( dataSourceSequenceOrderConfig != null ||
118+ ( isShardingTable &&
119+ ! _streamMergeContext . IsCrossDataSource ) ) || ( ! isShardingDataSource && isShardingTable && tableSequenceOrderConfig != null ) ;
120+
121+ if ( useSequenceEnumeratorMergeEngine )
122122 {
123123 return new AppendOrderSequenceEnumeratorAsyncStreamMergeEngine < TShardingDbContext , TEntity > ( _streamMergeContext , dataSourceSequenceOrderConfig , tableSequenceOrderConfig , _shardingPageManager . Current . RouteQueryResults ) ;
124124 }
@@ -158,22 +158,12 @@ private IEnumeratorStreamMergeEngine<TEntity> DoOrderSequencePaginationEnumerato
158158 }
159159 }
160160
161- if ( isShardingDataSource )
161+ var useSequenceEnumeratorMergeEngine = isShardingDataSource && ( dataSourceSequenceOrderConfig != null ||
162+ ( isShardingTable &&
163+ ! _streamMergeContext . IsCrossDataSource ) ) || ( ! isShardingDataSource && isShardingTable && tableSequenceOrderConfig != null ) ;
164+ if ( useSequenceEnumeratorMergeEngine )
162165 {
163- if ( dataSourceSequenceOrderConfig != null )
164- {
165- return new SequenceEnumeratorAsyncStreamMergeEngine < TShardingDbContext , TEntity > ( _streamMergeContext , dataSourceSequenceOrderConfig , tableSequenceOrderConfig , _shardingPageManager . Current . RouteQueryResults , primaryOrder . IsAsc ) ;
166- }
167- }
168- else
169- {
170- if ( isShardingTable )
171- {
172- if ( tableSequenceOrderConfig != null )
173- {
174- return new SequenceEnumeratorAsyncStreamMergeEngine < TShardingDbContext , TEntity > ( _streamMergeContext , dataSourceSequenceOrderConfig , tableSequenceOrderConfig , _shardingPageManager . Current . RouteQueryResults , primaryOrder . IsAsc ) ;
175- }
176- }
166+ return new SequenceEnumeratorAsyncStreamMergeEngine < TShardingDbContext , TEntity > ( _streamMergeContext , dataSourceSequenceOrderConfig , tableSequenceOrderConfig , _shardingPageManager . Current . RouteQueryResults , primaryOrder . IsAsc ) ;
177167 }
178168
179169 var total = _shardingPageManager . Current . RouteQueryResults . Sum ( o => o . QueryResult ) ;
0 commit comments