DbExecutionStrategy 类
[本页针对的是实体框架版本 6。最新版本以“实体框架”NuGet 包的形式提供。有关实体框架的更多信息,请参见 msdn.com/data/ef。]
为在两次重试之间使用以指数形式增长的延迟时间的不可靠操作和瞬时条件提供重试机制的基实现。
继承层次结构
System.Object
System.Data.Entity.Infrastructure.DbExecutionStrategy
System.Data.Entity.SqlServer.SqlAzureExecutionStrategy
命名空间: System.Data.Entity.Infrastructure
程序集: EntityFramework(在 EntityFramework.dll 中)
语法
声明
Public MustInherit Class DbExecutionStrategy _
Implements IDbExecutionStrategy
用法
Dim instance As DbExecutionStrategy
public abstract class DbExecutionStrategy : IDbExecutionStrategy
public ref class DbExecutionStrategy abstract : IDbExecutionStrategy
[<AbstractClassAttribute>]
type DbExecutionStrategy =
class
interface IDbExecutionStrategy
end
public abstract class DbExecutionStrategy implements IDbExecutionStrategy
DbExecutionStrategy 类型公开以下成员。
构造函数
名称 | 描述 | |
---|---|---|
DbExecutionStrategy() | 初始化 DbExecutionStrategy 类的新实例。 | |
DbExecutionStrategy(Int32, TimeSpan) | 使用指定的重试次数限制值和两次重试之间的延迟时间初始化 DbExecutionStrategy 类的新实例。 |
顶部
属性
名称 | 描述 | |
---|---|---|
RetriesOnFailure | 获取一个值,该值指示此 DbExecutionStrategy 在失败后是否可能重试执行。 |
顶部
方法
名称 | 描述 | |
---|---|---|
Equals | (继承自 Object。) | |
Execute(Action) | 在指定操作满足当前重试策略时重复执行此操作。 | |
Execute<TResult>(Func<TResult>) | 在指定操作满足当前重试策略时重复执行此操作。 | |
ExecuteAsync(Func<Task>, CancellationToken) | 在指定异步操作满足当前重试策略时重复执行此操作。 | |
ExecuteAsync<TResult>(Func<Task<TResult>>, CancellationToken) | 在指定异步操作满足当前重试策略时重复执行此操作。 | |
Finalize | (继承自 Object。) | |
GetHashCode | (继承自 Object。) | |
GetNextDelay | 确定是否应重试操作以及在下次重试前的延迟时间。 | |
GetType | (继承自 Object。) | |
MemberwiseClone | (继承自 Object。) | |
ShouldRetryOn | 确定指定的异常是否表示可以通过重试解决的瞬态失败。 | |
ToString | (继承自 Object。) | |
UnwrapAndHandleException<T> | 只要它是 EntityException、DbUpdateException 或 UpdateException,就以递归方式从 exception 获取 InnerException,并将其传递给 exceptionHandler。 |
顶部
备注
每次执行操作时将创建一个新实例。 以下公式用于计算 retryCount 次尝试后的延迟时间:min(random(1, 1.1) * (2 ^ retryCount - 1), maxDelay) retryCount 从 0 开始。 随机因子将重试次数均匀分布到同时失败的多个同时执行的操作。
线程安全
此类型的任何公共 static(在 Visual Basic 中为 Shared) 成员都是线程安全的。但不保证所有实例成员都是线程安全的。