Table of Contents

Class DbContextExtensions

Namespace
NuvTools.Data.EntityFrameworkCore.Extensions
Assembly
NuvTools.Data.EntityFrameworkCore.dll
public static class DbContextExtensions
Inheritance
DbContextExtensions
Inherited Members

Methods

AcquireTransactionLockAsync(DbContext, string, CancellationToken)

Acquires the exclusive lock named name, held until the current transaction ends. Backs AcquireTransactionLockAsync(string, CancellationToken); any context base can delegate here instead of repeating the lookup.

public static Task AcquireTransactionLockAsync(this DbContext context, string name, CancellationToken cancellationToken = default)

Parameters

context DbContext

The context whose transaction the lock belongs to.

name string

Lock name. Identifies what is being serialized, e.g. "contract-number:53".

cancellationToken CancellationToken

A cancellation token to observe while waiting for the task to complete.

Returns

Task

Remarks

The statement is provider-specific, so it comes from the IDbContextTransactionLock registered by the provider package (AddDatabase). With none registered — an in-memory context built by hand in a test — there is no concurrency to serialize and the call does nothing.

Exceptions

InvalidOperationException

No transaction is active on context.

AddAndSaveAsync<TEntity, TKey>(DbContext, TEntity, CancellationToken)

public static Task<IResult<TKey>> AddAndSaveAsync<TEntity, TKey>(this DbContext context, TEntity entity, CancellationToken cancellationToken = default) where TEntity : class

Parameters

context DbContext
entity TEntity
cancellationToken CancellationToken

Returns

Task<IResult<TKey>>

Type Parameters

TEntity
TKey

AddAndSaveWithCompositeKeyAsync<TEntity>(DbContext, TEntity, CancellationToken)

public static Task<IResult<object[]>> AddAndSaveWithCompositeKeyAsync<TEntity>(this DbContext context, TEntity entity, CancellationToken cancellationToken = default) where TEntity : class

Parameters

context DbContext
entity TEntity
cancellationToken CancellationToken

Returns

Task<IResult<object[]>>

Type Parameters

TEntity

ExecuteWithStrategyAsync(DbContext, Func<CancellationToken, Task>, CancellationToken)

Executes the provided action within the execution strategy of the DbContext.

https://docs.microsoft.com/en-us/ef/core/miscellaneous/connection-resiliency

public static Task ExecuteWithStrategyAsync(this DbContext context, Func<CancellationToken, Task> action, CancellationToken cancellationToken = default)

Parameters

context DbContext

The DbContext instance.

action Func<CancellationToken, Task>

The action to execute.

cancellationToken CancellationToken

A CancellationToken to observe while waiting for the task to complete.

Returns

Task

A Task representing the asynchronous operation.

ExecuteWithStrategyAsync<T>(DbContext, Func<CancellationToken, Task<T>>, CancellationToken)

Executes the provided action within the execution strategy of the DbContext and returns a result.

https://docs.microsoft.com/en-us/ef/core/miscellaneous/connection-resiliency

public static Task<T> ExecuteWithStrategyAsync<T>(this DbContext context, Func<CancellationToken, Task<T>> action, CancellationToken cancellationToken = default)

Parameters

context DbContext

The DbContext instance.

action Func<CancellationToken, Task<T>>

The action to execute.

cancellationToken CancellationToken

A CancellationToken to observe while waiting for the task to complete.

Returns

Task<T>

A Task representing the asynchronous operation, with a result of type T.

Type Parameters

T

The type of the result.

FindPrimaryKeyValues<TEntity>(DbContext, TEntity)

public static object[] FindPrimaryKeyValues<TEntity>(this DbContext context, TEntity entity) where TEntity : class

Parameters

context DbContext
entity TEntity

Returns

object[]

Type Parameters

TEntity

RemoveAndSaveAsync<TEntity>(DbContext, params object[])

public static Task<IResult> RemoveAndSaveAsync<TEntity>(this DbContext context, params object[] keyValues) where TEntity : class

Parameters

context DbContext
keyValues object[]

Returns

Task<IResult>

Type Parameters

TEntity

RemoveAndSaveAsync<TEntity>(DbContext, object[], CancellationToken)

public static Task<IResult> RemoveAndSaveAsync<TEntity>(this DbContext context, object[] keyValues, CancellationToken cancellationToken = default) where TEntity : class

Parameters

context DbContext
keyValues object[]
cancellationToken CancellationToken

Returns

Task<IResult>

Type Parameters

TEntity

UpdateAndSaveAsync<TEntity>(DbContext, TEntity, params object[])

public static Task<IResult> UpdateAndSaveAsync<TEntity>(this DbContext context, TEntity entity, params object[] keyValues) where TEntity : class

Parameters

context DbContext
entity TEntity
keyValues object[]

Returns

Task<IResult>

Type Parameters

TEntity

UpdateAndSaveAsync<TEntity>(DbContext, TEntity, object[], CancellationToken)

public static Task<IResult> UpdateAndSaveAsync<TEntity>(this DbContext context, TEntity entity, object[] keyValues, CancellationToken cancellationToken = default) where TEntity : class

Parameters

context DbContext
entity TEntity
keyValues object[]
cancellationToken CancellationToken

Returns

Task<IResult>

Type Parameters

TEntity