Skip to content

Commit 3885f80

Browse files
committed
优化聚合回收dbcontext的代码
1 parent 85dc96c commit 3885f80

File tree

2 files changed

+9
-3
lines changed

2 files changed

+9
-3
lines changed

src/ShardingCore/Sharding/Enumerators/StreamMergeAsync/OneAtMostElementStreamMergeAsyncEnumerator.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ namespace ShardingCore.Sharding.Enumerators.StreamMergeAsync
88
{
99
internal class OneAtMostElementStreamMergeAsyncEnumerator<T> : IStreamMergeAsyncEnumerator<T>
1010
{
11+
/// <summary>
12+
/// 因为启动的时候需要一次movenext所以这边将其设置为-1
13+
/// </summary>
1114
private int _moveIndex = -1;
1215
private T _constantElement;
1316

src/ShardingCore/Sharding/MergeEngines/Executors/Abstractions/AbstractExecutor.cs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -90,10 +90,13 @@ private async Task<LinkedList<TResult>> ExecuteAsync0(bool async,
9090
if (dataSourceSqlExecutorUnit.ConnectionMode == ConnectionModeEnum.CONNECTION_STRICTLY)
9191
{
9292
MergeParallelExecuteResult(result, routeQueryResults.Select(o => o.MergeResult), async);
93-
var dbContexts = routeQueryResults.Where(o=>o!=null).Select(o => o.DbContext).ToArray();
94-
foreach (var dbContext in dbContexts)
93+
foreach (var routeQueryResult in routeQueryResults)
9594
{
96-
await streamMergeContext.DbContextDisposeAsync(dbContext);
95+
var dbContext = routeQueryResult.DbContext;
96+
if (dbContext != null)
97+
{
98+
await streamMergeContext.DbContextDisposeAsync(dbContext);
99+
}
97100
}
98101
}
99102
else

0 commit comments

Comments
 (0)