@@ -100,7 +100,8 @@ public override MongoCollectionSettings Settings
100
100
// public methods
101
101
public override IAsyncCursor < TResult > Aggregate < TResult > ( PipelineDefinition < TDocument , TResult > pipeline , AggregateOptions options , CancellationToken cancellationToken = default )
102
102
{
103
- return UsingImplicitSession ( session => Aggregate ( session , pipeline , options , cancellationToken ) , cancellationToken ) ;
103
+ using var session = OperationExecutor . StartImplicitSession ( cancellationToken ) ;
104
+ return Aggregate ( session , pipeline , options , cancellationToken ) ;
104
105
}
105
106
106
107
public override IAsyncCursor < TResult > Aggregate < TResult > ( IClientSessionHandle session , PipelineDefinition < TDocument , TResult > pipeline , AggregateOptions options , CancellationToken cancellationToken = default )
@@ -124,9 +125,10 @@ public override IAsyncCursor<TResult> Aggregate<TResult>(IClientSessionHandle se
124
125
}
125
126
}
126
127
127
- public override Task < IAsyncCursor < TResult > > AggregateAsync < TResult > ( PipelineDefinition < TDocument , TResult > pipeline , AggregateOptions options , CancellationToken cancellationToken = default )
128
+ public override async Task < IAsyncCursor < TResult > > AggregateAsync < TResult > ( PipelineDefinition < TDocument , TResult > pipeline , AggregateOptions options , CancellationToken cancellationToken = default )
128
129
{
129
- return UsingImplicitSessionAsync ( session => AggregateAsync ( session , pipeline , options , cancellationToken ) , cancellationToken ) ;
130
+ using var session = await OperationExecutor . StartImplicitSessionAsync ( cancellationToken ) . ConfigureAwait ( false ) ;
131
+ return await AggregateAsync ( session , pipeline , options , cancellationToken ) . ConfigureAwait ( false ) ;
130
132
}
131
133
132
134
public override async Task < IAsyncCursor < TResult > > AggregateAsync < TResult > ( IClientSessionHandle session , PipelineDefinition < TDocument , TResult > pipeline , AggregateOptions options , CancellationToken cancellationToken = default )
@@ -152,7 +154,8 @@ public override async Task<IAsyncCursor<TResult>> AggregateAsync<TResult>(IClien
152
154
153
155
public override void AggregateToCollection < TResult > ( PipelineDefinition < TDocument , TResult > pipeline , AggregateOptions options , CancellationToken cancellationToken = default )
154
156
{
155
- UsingImplicitSession ( session => AggregateToCollection ( session , pipeline , options , cancellationToken ) , cancellationToken ) ;
157
+ using var session = OperationExecutor . StartImplicitSession ( cancellationToken ) ;
158
+ AggregateToCollection ( session , pipeline , options , cancellationToken ) ;
156
159
}
157
160
158
161
public override void AggregateToCollection < TResult > ( IClientSessionHandle session , PipelineDefinition < TDocument , TResult > pipeline , AggregateOptions options , CancellationToken cancellationToken = default )
@@ -172,9 +175,10 @@ public override void AggregateToCollection<TResult>(IClientSessionHandle session
172
175
OperationExecutor . ExecuteWriteOperation ( aggregateOperation , _writeOperationOptions , session , cancellationToken ) ;
173
176
}
174
177
175
- public override Task AggregateToCollectionAsync < TResult > ( PipelineDefinition < TDocument , TResult > pipeline , AggregateOptions options , CancellationToken cancellationToken = default )
178
+ public override async Task AggregateToCollectionAsync < TResult > ( PipelineDefinition < TDocument , TResult > pipeline , AggregateOptions options , CancellationToken cancellationToken = default )
176
179
{
177
- return UsingImplicitSessionAsync ( session => AggregateToCollectionAsync ( session , pipeline , options , cancellationToken ) , cancellationToken ) ;
180
+ using var session = await OperationExecutor . StartImplicitSessionAsync ( cancellationToken ) . ConfigureAwait ( false ) ;
181
+ await AggregateToCollectionAsync ( session , pipeline , options , cancellationToken ) . ConfigureAwait ( false ) ;
178
182
}
179
183
180
184
public override async Task AggregateToCollectionAsync < TResult > ( IClientSessionHandle session , PipelineDefinition < TDocument , TResult > pipeline , AggregateOptions options , CancellationToken cancellationToken = default )
@@ -467,7 +471,8 @@ public override Task<TProjection> FindOneAndUpdateAsync<TProjection>(IClientSess
467
471
[ Obsolete ( "Use Aggregation pipeline instead." ) ]
468
472
public override IAsyncCursor < TResult > MapReduce < TResult > ( BsonJavaScript map , BsonJavaScript reduce , MapReduceOptions < TDocument , TResult > options = null , CancellationToken cancellationToken = default )
469
473
{
470
- return UsingImplicitSession ( session => MapReduce ( session , map , reduce , options , cancellationToken ) , cancellationToken ) ;
474
+ using var session = OperationExecutor . StartImplicitSession ( cancellationToken ) ;
475
+ return MapReduce ( session , map , reduce , options , cancellationToken ) ;
471
476
}
472
477
473
478
[ Obsolete ( "Use Aggregation pipeline instead." ) ]
@@ -496,9 +501,10 @@ public override IAsyncCursor<TResult> MapReduce<TResult>(IClientSessionHandle se
496
501
}
497
502
498
503
[ Obsolete ( "Use Aggregation pipeline instead." ) ]
499
- public override Task < IAsyncCursor < TResult > > MapReduceAsync < TResult > ( BsonJavaScript map , BsonJavaScript reduce , MapReduceOptions < TDocument , TResult > options = null , CancellationToken cancellationToken = default )
504
+ public override async Task < IAsyncCursor < TResult > > MapReduceAsync < TResult > ( BsonJavaScript map , BsonJavaScript reduce , MapReduceOptions < TDocument , TResult > options = null , CancellationToken cancellationToken = default )
500
505
{
501
- return UsingImplicitSessionAsync ( session => MapReduceAsync ( session , map , reduce , options , cancellationToken ) , cancellationToken ) ;
506
+ using var session = await OperationExecutor . StartImplicitSessionAsync ( cancellationToken ) . ConfigureAwait ( false ) ;
507
+ return await MapReduceAsync ( session , map , reduce , options , cancellationToken ) . ConfigureAwait ( false ) ;
502
508
}
503
509
504
510
[ Obsolete ( "Use Aggregation pipeline instead." ) ]
@@ -1266,38 +1272,6 @@ private IBsonSerializer<TResult> ResolveResultSerializer<TResult>(IBsonSerialize
1266
1272
return _settings . SerializerRegistry . GetSerializer < TResult > ( ) ;
1267
1273
}
1268
1274
1269
- private void UsingImplicitSession ( Action < IClientSessionHandle > func , CancellationToken cancellationToken = default )
1270
- {
1271
- using ( var session = _operationExecutor . StartImplicitSession ( cancellationToken ) )
1272
- {
1273
- func ( session ) ;
1274
- }
1275
- }
1276
-
1277
- private TResult UsingImplicitSession < TResult > ( Func < IClientSessionHandle , TResult > func , CancellationToken cancellationToken = default )
1278
- {
1279
- using ( var session = _operationExecutor . StartImplicitSession ( cancellationToken ) )
1280
- {
1281
- return func ( session ) ;
1282
- }
1283
- }
1284
-
1285
- private async Task UsingImplicitSessionAsync ( Func < IClientSessionHandle , Task > funcAsync , CancellationToken cancellationToken = default )
1286
- {
1287
- using ( var session = await _operationExecutor . StartImplicitSessionAsync ( cancellationToken ) . ConfigureAwait ( false ) )
1288
- {
1289
- await funcAsync ( session ) . ConfigureAwait ( false ) ;
1290
- }
1291
- }
1292
-
1293
- private async Task < TResult > UsingImplicitSessionAsync < TResult > ( Func < IClientSessionHandle , Task < TResult > > funcAsync , CancellationToken cancellationToken = default )
1294
- {
1295
- using ( var session = await _operationExecutor . StartImplicitSessionAsync ( cancellationToken ) . ConfigureAwait ( false ) )
1296
- {
1297
- return await funcAsync ( session ) . ConfigureAwait ( false ) ;
1298
- }
1299
- }
1300
-
1301
1275
// nested types
1302
1276
private class MongoIndexManager : MongoIndexManagerBase < TDocument >
1303
1277
{
0 commit comments