Share via


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)

创建 SqlServerRetryingExecutionStrategy 的新实例。

SqlServerRetryingExecutionStrategy(DbContext, Int32)

创建 SqlServerRetryingExecutionStrategy 的新实例。

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

创建 SqlServerRetryingExecutionStrategy 的新实例。

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

创建 SqlServerRetryingExecutionStrategy 的新实例。

SqlServerRetryingExecutionStrategy(ExecutionStrategyContext)

创建 SqlServerRetryingExecutionStrategy 的新实例。

SqlServerRetryingExecutionStrategy(ExecutionStrategyContext, Int32)

创建 SqlServerRetryingExecutionStrategy 的新实例。

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

创建 SqlServerRetryingExecutionStrategy 的新实例。

SqlServerRetryingExecutionStrategy(ExecutionStrategyDependencies)

创建 SqlServerRetryingExecutionStrategy 的新实例。

SqlServerRetryingExecutionStrategy(ExecutionStrategyDependencies, IEnumerable<Int32>)

创建 SqlServerRetryingExecutionStrategy 的新实例。

SqlServerRetryingExecutionStrategy(ExecutionStrategyDependencies, Int32)

创建 SqlServerRetryingExecutionStrategy 的新实例。

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

创建 SqlServerRetryingExecutionStrategy 的新实例。

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

创建 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>)

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

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)

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

适用于