ExecutionStrategy 类

定义

实现的 IExecutionStrategy 基类。

public abstract class ExecutionStrategy : Microsoft.EntityFrameworkCore.Storage.IExecutionStrategy
type ExecutionStrategy = class
    interface IExecutionStrategy
Public MustInherit Class ExecutionStrategy
Implements IExecutionStrategy
继承
ExecutionStrategy
派生
实现

注解

服务生存期为 Scoped。 这意味着每个 DbContext 实例都将使用此服务自己的实例。 实现可能依赖于使用任何生存期注册的其他服务。 实现不需要是线程安全的。

有关详细信息 和示例,请参阅连接复原和数据库重试

构造函数

ExecutionStrategy(DbContext, Int32, TimeSpan)

创建 ExecutionStrategy 的新实例。

ExecutionStrategy(ExecutionStrategyContext, Int32, TimeSpan)

创建 ExecutionStrategy 的新实例。

ExecutionStrategy(ExecutionStrategyDependencies, Int32, TimeSpan)

创建 ExecutionStrategy 的新实例。

字段

DefaultMaxDelay

重试之间的默认最大时间延迟必须是非否定的。

DefaultMaxRetryCount

默认重试次数。

属性

Context

将对其调用操作的上下文。

Current

获取或设置当前正在执行的策略。 所有嵌套调用都将由最外层的策略处理。

Dependencies

此服务的依赖项。

ExceptionsEncountered

到目前为止导致重试操作的异常列表。

Logger

ExecutionStrategy的记录器。

MaxRetryCount

最大重试尝试次数。

MaxRetryDelay

重试之间的最大延迟。

Random

一个伪随机数生成器,可用于改变重试之间的延迟。

RetriesOnFailure

指示这 IExecutionStrategy 是否可能在失败后重试执行。

Suspended
已过时.

指示策略是否暂停。 策略通常在执行时暂停,以避免嵌套操作的递归执行。

方法

CallOnWrappedException<TResult>(Exception, Func<Exception,TResult>)

只要它是实体框架创建的异常,并在最内部的异常上调用exceptionHandler,则递归方式从中获取 InnerExceptionexception

Execute<TState,TResult>(Func<TState,TResult>, Func<TState,ExecutionResult<TResult>>, TState)

执行指定的操作并返回结果。

Execute<TState,TResult>(TState, Func<DbContext,TState,TResult>, Func<DbContext,TState,ExecutionResult<TResult>>)

执行指定的操作并返回结果。

ExecuteAsync<TState,TResult>(Func<TState,CancellationToken,Task<TResult>>, Func<TState,CancellationToken,Task<ExecutionResult<TResult>>>, TState, CancellationToken)

执行指定的异步操作并返回结果。

ExecuteAsync<TState,TResult>(TState, Func<DbContext,TState,CancellationToken, Task<TResult>>, Func<DbContext,TState,CancellationToken,Task<ExecutionResult<TResult>>>, CancellationToken)

执行指定的异步操作并返回结果。

ExecuteInTransaction<TState,TResult>(Func<TState,TResult>, Func<TState,Boolean>, TState)

在事务中执行指定的操作,并在提交后返回结果。

ExecuteInTransactionAsync<TState,TResult>(Func<TState,CancellationToken, Task<TResult>>, Func<TState,CancellationToken,Task<Boolean>>, TState, CancellationToken)

执行指定的异步操作并返回结果。

GetNextDelay(Exception)

确定是否应重试操作,并在下一次尝试之前延迟。

OnFirstExecution()

在执行第一个操作之前调用的方法

OnRetry()

在重试操作执行之前调用的方法

ShouldRetryOn(Exception)

确定指定的异常是否表示可以通过重试进行补偿的暂时性故障。

ShouldVerifySuccessOn(Exception)

确定在成功执行后是否可以引发指定的异常。

扩展方法

Execute(IExecutionStrategy, Action)

执行指定的操作。

Execute<TState>(IExecutionStrategy, TState, Action<TState>)

执行指定的操作。

Execute<TState>(IExecutionStrategy, Action<TState>, TState)

执行指定的操作。

Execute<TResult>(IExecutionStrategy, Func<TResult>)

执行指定的操作并返回结果。

Execute<TState,TResult>(IExecutionStrategy, TState, Func<TState,TResult>)

执行指定的操作并返回结果。

Execute<TState,TResult>(IExecutionStrategy, TState, Func<TState,TResult>, Func<TState,ExecutionResult<TResult>>)

执行指定的操作并返回结果。

Execute<TState,TResult>(IExecutionStrategy, Func<TState,TResult>, TState)

执行指定的操作并返回结果。

Execute<TState,TResult>(IExecutionStrategy, Func<TState,TResult>, Func<TState,ExecutionResult<TResult>>, TState)
已过时.

执行指定的操作并返回结果。

ExecuteAsync(IExecutionStrategy, Func<CancellationToken,Task>, CancellationToken)

执行指定的异步操作。

ExecuteAsync(IExecutionStrategy, Func<Task>)

执行指定的异步操作。

ExecuteAsync<TState>(IExecutionStrategy, TState, Func<TState,CancellationToken,Task>, CancellationToken)

执行指定的异步操作。

ExecuteAsync<TState>(IExecutionStrategy, TState, Func<TState,Task>)

执行指定的异步操作。

ExecuteAsync<TState>(IExecutionStrategy, Func<TState,CancellationToken,Task>, TState, CancellationToken)

执行指定的异步操作。

ExecuteAsync<TState>(IExecutionStrategy, Func<TState,Task>, TState)

执行指定的异步操作。

ExecuteAsync<TResult>(IExecutionStrategy, Func<CancellationToken,Task<TResult>>, CancellationToken)

执行指定的异步操作并返回结果。

ExecuteAsync<TResult>(IExecutionStrategy, Func<Task<TResult>>)

执行指定的异步操作并返回结果。

ExecuteAsync<TState,TResult>(IExecutionStrategy, TState, Func<TState, CancellationToken,Task<TResult>>, Func<TState,CancellationToken, Task<ExecutionResult<TResult>>>, CancellationToken)

执行指定的异步操作并返回结果。

ExecuteAsync<TState,TResult>(IExecutionStrategy, TState, Func<TState,CancellationToken,Task<TResult>>, CancellationToken)

执行指定的异步操作并返回结果。

ExecuteAsync<TState,TResult>(IExecutionStrategy, TState, Func<TState,Task<TResult>>)

执行指定的异步操作并返回结果。

ExecuteAsync<TState,TResult>(IExecutionStrategy, Func<TState,CancellationToken,Task<TResult>>, TState, CancellationToken)

执行指定的异步操作并返回结果。

ExecuteAsync<TState,TResult>(IExecutionStrategy, Func<TState,Task<TResult>>, TState)

执行指定的异步操作并返回结果。

ExecuteInTransaction(IExecutionStrategy, Action, Func<Boolean>)

在事务中执行指定的操作。 允许检查提交期间发生错误时事务是否已回滚。

ExecuteInTransaction<TState>(IExecutionStrategy, TState, Action<TState>, Func<TState,Boolean>)

在事务中执行指定的操作。 允许检查提交期间发生错误时事务是否已回滚。

ExecuteInTransaction<TResult>(IExecutionStrategy, Func<TResult>, Func<Boolean>)

在事务中执行指定的操作并返回结果。 允许检查提交期间发生错误时事务是否已回滚。

ExecuteInTransaction<TState,TResult>(IExecutionStrategy, TState, Func<TState,TResult>, Func<TState,Boolean>)

在事务中执行指定的操作并返回结果。 允许检查提交期间发生错误时事务是否已回滚。

ExecuteInTransaction<TState,TResult>(IExecutionStrategy, Func<TState,TResult>, Func<TState,Boolean>, TState, DbContext)

在事务中执行指定的操作,并在提交后返回结果。

ExecuteInTransactionAsync(IExecutionStrategy, Func<CancellationToken,Task>, Func<CancellationToken,Task<Boolean>>, CancellationToken)

在事务中执行指定的异步操作。 允许检查提交期间发生错误时事务是否已回滚。

ExecuteInTransactionAsync(IExecutionStrategy, Func<Task>, Func<Task<Boolean>>)

在事务中执行指定的异步操作。 允许检查提交期间发生错误时事务是否已回滚。

ExecuteInTransactionAsync<TState>(IExecutionStrategy, TState, Func<TState,CancellationToken,Task>, Func<TState,CancellationToken, Task<Boolean>>, CancellationToken)

在事务中执行指定的异步操作。 允许检查提交期间发生错误时事务是否已回滚。

ExecuteInTransactionAsync<TResult>(IExecutionStrategy, Func<CancellationToken, Task<TResult>>, Func<CancellationToken,Task<Boolean>>, CancellationToken)

在事务中执行指定的异步操作并返回结果。 允许检查提交期间发生错误时事务是否已回滚。

ExecuteInTransactionAsync<TState,TResult>(IExecutionStrategy, TState, Func<TState,CancellationToken,Task<TResult>>, Func<TState, CancellationToken,Task<Boolean>>, CancellationToken)

在事务中执行指定的异步操作并返回结果。 允许检查提交期间发生错误时事务是否已回滚。

ExecuteInTransactionAsync<TState,TResult>(IExecutionStrategy, Func<TState,CancellationToken,Task<TResult>>, Func<TState,CancellationToken, Task<Boolean>>, TState, DbContext, CancellationToken)

执行指定的异步操作并返回结果。

ExecuteInTransaction(IExecutionStrategy, Action, Func<Boolean>, IsolationLevel)

在事务中执行指定的操作。 允许检查提交期间发生错误时事务是否已回滚。

ExecuteInTransaction<TState>(IExecutionStrategy, TState, Action<TState>, Func<TState,Boolean>, IsolationLevel)

在事务中执行指定的操作。 允许检查提交期间发生错误时事务是否已回滚。

ExecuteInTransaction<TResult>(IExecutionStrategy, Func<TResult>, Func<Boolean>, IsolationLevel)

在事务中执行指定的操作并返回结果。 允许检查提交期间发生错误时事务是否已回滚。

ExecuteInTransaction<TState,TResult>(IExecutionStrategy, TState, Func<TState,TResult>, Func<TState,Boolean>, IsolationLevel)

在事务中执行指定的操作并返回结果。 允许检查提交期间发生错误时事务是否已回滚。

ExecuteInTransactionAsync(IExecutionStrategy, Func<CancellationToken,Task>, Func<CancellationToken,Task<Boolean>>, IsolationLevel, CancellationToken)

在事务中执行指定的异步操作。 允许检查提交期间发生错误时事务是否已回滚。

ExecuteInTransactionAsync(IExecutionStrategy, Func<Task>, Func<Task<Boolean>>, IsolationLevel)

在事务中执行指定的异步操作。 允许检查提交期间发生错误时事务是否已回滚。

ExecuteInTransactionAsync<TState>(IExecutionStrategy, TState, Func<TState,CancellationToken,Task>, Func<TState,CancellationToken, Task<Boolean>>, IsolationLevel, CancellationToken)

在事务中执行指定的异步操作。 允许检查提交期间发生错误时事务是否已回滚。

ExecuteInTransactionAsync<TResult>(IExecutionStrategy, Func<CancellationToken, Task<TResult>>, Func<CancellationToken,Task<Boolean>>, IsolationLevel, CancellationToken)

在事务中执行指定的异步操作并返回结果。 允许检查提交期间发生错误时事务是否已回滚。

ExecuteInTransactionAsync<TState,TResult>(IExecutionStrategy, TState, Func<TState,CancellationToken,Task<TResult>>, Func<TState, CancellationToken,Task<Boolean>>, IsolationLevel, CancellationToken)

执行指定的异步操作并返回结果。 允许检查提交期间发生错误时事务是否已回滚。

适用于