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
contextDbContextThe context whose transaction the lock belongs to.
namestringLock name. Identifies what is being serialized, e.g.
"contract-number:53".cancellationTokenCancellationTokenA cancellation token to observe while waiting for the task to complete.
Returns
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
contextDbContextentityTEntitycancellationTokenCancellationToken
Returns
Type Parameters
TEntityTKey
AddAndSaveWithCompositeKeyAsync<TEntity>(DbContext, TEntity, CancellationToken)
public static Task<IResult<object[]>> AddAndSaveWithCompositeKeyAsync<TEntity>(this DbContext context, TEntity entity, CancellationToken cancellationToken = default) where TEntity : class
Parameters
contextDbContextentityTEntitycancellationTokenCancellationToken
Returns
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
contextDbContextThe DbContext instance.
actionFunc<CancellationToken, Task>The action to execute.
cancellationTokenCancellationTokenA 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
contextDbContextThe DbContext instance.
actionFunc<CancellationToken, Task<T>>The action to execute.
cancellationTokenCancellationTokenA 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
TThe type of the result.
FindPrimaryKeyValues<TEntity>(DbContext, TEntity)
public static object[] FindPrimaryKeyValues<TEntity>(this DbContext context, TEntity entity) where TEntity : class
Parameters
contextDbContextentityTEntity
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
Returns
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
contextDbContextkeyValuesobject[]cancellationTokenCancellationToken
Returns
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
Returns
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
contextDbContextentityTEntitykeyValuesobject[]cancellationTokenCancellationToken
Returns
Type Parameters
TEntity