ExecutionStrategy 類別

定義

實作的 IExecutionStrategy 基類。

public abstract class ExecutionStrategy : Microsoft.EntityFrameworkCore.Storage.IExecutionStrategy
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>)

只要 Entity Framework 所建立的例外狀況,並在最內部的例外狀況上呼叫 exceptionHandler ,遞迴方式就會從 exception 中取得 InnerException。

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

執行指定的非同步作業,並傳回結果。 允許檢查交易是否已在認可期間發生錯誤時回復。

適用於