共用方式為


DbExecutionStrategy 類別

[此頁面專屬於 Entity Framework 第 6 版。最新版本可從 'Entity Framework' NuGet 套件取得。如需 Entity Framework 的詳細資訊,請參閱 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> 只要是 EntityExceptionDbUpdateExceptionUpdateException,就會以遞迴方式從 exception 取得 InnerException,並將其傳遞至 exceptionHandler。

靠上

備註

每次執行作業時,就會建立新的執行個體。 在嘗試 retryCount 次重試之後,會使用下面公式計算延遲:min(random(1, 1.1) * (2 ^ retryCount - 1), maxDelay)。retryCount 會從 0 開始。 隨機因素會從同時失敗的多個同時作業以統一的方式來散發重試次數。

執行緒安全

這個類型的任何 Public static (在 Visual Basic 中為 Shared) 成員都是安全執行緒。並非所有的執行個體成員都是安全執行緒。

請參閱

參考

System.Data.Entity.Infrastructure 命名空間