语言

ExecutionStrategy 类

定义

实现的 IExecutionStrategy 基类。

public abstract class ExecutionStrategy : Microsoft.EntityFrameworkCore.Storage.IExecutionStrategy
[System.Runtime.CompilerServices.Nullable(0)]
public abstract class ExecutionStrategy : Microsoft.EntityFrameworkCore.Storage.IExecutionStrategy
type ExecutionStrategy = class
    interface IExecutionStrategy
[<System.Runtime.CompilerServices.Nullable(0)>]
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>)

递归方式从 exception 内部获取 InnerException,只要它是实体框架创建的异常,并调用 exceptionHandler 最内部的异常。

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<TResult>(IExecutionStrategy, Func<TResult>)

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

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

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

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

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

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

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

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

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

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

执行指定的操作。

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

执行指定的操作。

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

执行指定的异步操作。

ExecuteAsync(IExecutionStrategy, Func<Task>)

执行指定的异步操作。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

执行指定的异步操作。

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

执行指定的异步操作。

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

执行指定的异步操作。

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

执行指定的异步操作。

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

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

ExecuteInTransaction(IExecutionStrategy, Action, Func<Boolean>)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

适用于