语言

SqlServerRetryingExecutionStrategy 类

定义

用于IExecutionStrategy在 SQL Server 上重试失败执行的实现。

public class SqlServerRetryingExecutionStrategy : Microsoft.EntityFrameworkCore.Storage.ExecutionStrategy
type SqlServerRetryingExecutionStrategy = class
    inherit ExecutionStrategy
Public Class SqlServerRetryingExecutionStrategy
Inherits ExecutionStrategy
继承
SqlServerRetryingExecutionStrategy

注解

此策略专为包括Azure SQL) 在内的SQL Server (量身定做。 它预先配置了可重试的暂时性错误的错误号。 还可以提供其他要重试的错误号。

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

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

构造函数

名称 说明
SqlServerRetryingExecutionStrategy(DbContext, Int32, TimeSpan, ICollection<Int32>)

创建 SqlServerRetryingExecutionStrategy 的新实例。

SqlServerRetryingExecutionStrategy(DbContext, Int32, TimeSpan, IEnumerable<Int32>)

创建 SqlServerRetryingExecutionStrategy 的新实例。

SqlServerRetryingExecutionStrategy(DbContext, Int32)

创建 SqlServerRetryingExecutionStrategy 的新实例。

SqlServerRetryingExecutionStrategy(DbContext)

创建 SqlServerRetryingExecutionStrategy 的新实例。

SqlServerRetryingExecutionStrategy(ExecutionStrategyContext, Int32, TimeSpan, ICollection<Int32>)

创建 SqlServerRetryingExecutionStrategy 的新实例。

SqlServerRetryingExecutionStrategy(ExecutionStrategyContext, Int32)

创建 SqlServerRetryingExecutionStrategy 的新实例。

SqlServerRetryingExecutionStrategy(ExecutionStrategyContext)

创建 SqlServerRetryingExecutionStrategy 的新实例。

SqlServerRetryingExecutionStrategy(ExecutionStrategyDependencies, IEnumerable<Int32>)

创建 SqlServerRetryingExecutionStrategy 的新实例。

SqlServerRetryingExecutionStrategy(ExecutionStrategyDependencies, Int32, TimeSpan, ICollection<Int32>)

创建 SqlServerRetryingExecutionStrategy 的新实例。

SqlServerRetryingExecutionStrategy(ExecutionStrategyDependencies, Int32, TimeSpan, IEnumerable<Int32>)

创建 SqlServerRetryingExecutionStrategy 的新实例。

SqlServerRetryingExecutionStrategy(ExecutionStrategyDependencies, Int32)

创建 SqlServerRetryingExecutionStrategy 的新实例。

SqlServerRetryingExecutionStrategy(ExecutionStrategyDependencies)

创建 SqlServerRetryingExecutionStrategy 的新实例。

字段

名称 说明
DefaultMinDelayThrottling

限制错误的重试之间的默认最小时间延迟。

属性

名称 说明
AdditionalErrorNumbers

其他应被视为暂时性的 SQL 错误号。

Context

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

(继承自 ExecutionStrategy)
Dependencies

此服务的依赖项。

(继承自 ExecutionStrategy)
ExceptionsEncountered

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

(继承自 ExecutionStrategy)
Logger

此 ExecutionStrategy的记录器。

(继承自 ExecutionStrategy)
MaxRetryCount

最大重试尝试次数。

(继承自 ExecutionStrategy)
MaxRetryDelay

重试之间的最大延迟。

(继承自 ExecutionStrategy)
Random

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

(继承自 ExecutionStrategy)
RetriesOnFailure

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

(继承自 ExecutionStrategy)

方法

名称 说明
Execute<TState,TResult>(Func<TState,TResult>, Func<TState,ExecutionResult<TResult>>, TState)

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

(继承自 ExecutionStrategy)
Execute<TState,TResult>(TState, Func<DbContext,TState,TResult>, Func<DbContext,TState,ExecutionResult<TResult>>)

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

(继承自 ExecutionStrategy)
ExecuteAsync<TState,TResult>(Func<TState,CancellationToken,Task<TResult>>, Func<TState,CancellationToken,Task<ExecutionResult<TResult>>>, TState, CancellationToken)

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

(继承自 ExecutionStrategy)
ExecuteAsync<TState,TResult>(TState, Func<DbContext,TState,CancellationToken, Task<TResult>>, Func<DbContext,TState,CancellationToken,Task<ExecutionResult<TResult>>>, CancellationToken)

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

(继承自 ExecutionStrategy)
ExecuteInTransaction<TState,TResult>(Func<TState,TResult>, Func<TState,Boolean>, TState)

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

(继承自 ExecutionStrategy)
ExecuteInTransactionAsync<TState,TResult>(Func<TState,CancellationToken, Task<TResult>>, Func<TState,CancellationToken,Task<Boolean>>, TState, CancellationToken)

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

(继承自 ExecutionStrategy)
GetNextDelay(Exception)

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

OnFirstExecution()

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

(继承自 ExecutionStrategy)
OnRetry()

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

(继承自 ExecutionStrategy)
ShouldRetryOn(Exception)

确定指定的异常是否表示可以通过重试进行补偿的暂时性故障。 要重试的其他异常可以传递给构造函数。

ShouldVerifySuccessOn(Exception)

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

(继承自 ExecutionStrategy)

扩展方法

名称 说明
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>, Func<TState,ExecutionResult<TResult>>)

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

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

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

适用于