Table of Contents

Class MongoDbServiceFactoryTransactionExtensions

Namespace
Tharga.MongoDB
Assembly
Tharga.MongoDB.dll

Transaction extensions on IMongoDbServiceFactory. Opens a client session on the configured cluster, runs body inside a transaction, commits on success and aborts on exception.

public static class MongoDbServiceFactoryTransactionExtensions
Inheritance
MongoDbServiceFactoryTransactionExtensions
Inherited Members

Methods

WithTransactionAsync(IMongoDbServiceFactory, Func<IClientSessionHandle, CancellationToken, Task>, string, TransactionOptions, CancellationToken)

Open a session on the cluster identified by configurationName (default if null), run body inside a MongoDB transaction. Commits on success, aborts on exception. The driver retries on transient transaction errors.

public static Task WithTransactionAsync(this IMongoDbServiceFactory factory, Func<IClientSessionHandle, CancellationToken, Task> body, string configurationName = null, TransactionOptions options = null, CancellationToken cancellationToken = default)

Parameters

factory IMongoDbServiceFactory
body Func<IClientSessionHandle, CancellationToken, Task>
configurationName string
options TransactionOptions
cancellationToken CancellationToken

Returns

Task

Remarks

MongoDB requires a replica set or sharded cluster for transactions; standalone deployments throw.

WithTransactionAsync<TResult>(IMongoDbServiceFactory, Func<IClientSessionHandle, CancellationToken, Task<TResult>>, string, TransactionOptions, CancellationToken)

public static Task<TResult> WithTransactionAsync<TResult>(this IMongoDbServiceFactory factory, Func<IClientSessionHandle, CancellationToken, Task<TResult>> body, string configurationName = null, TransactionOptions options = null, CancellationToken cancellationToken = default)

Parameters

factory IMongoDbServiceFactory
body Func<IClientSessionHandle, CancellationToken, Task<TResult>>
configurationName string
options TransactionOptions
cancellationToken CancellationToken

Returns

Task<TResult>

Type Parameters

TResult