次の方法で共有


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す限り、InnerException を再帰的にからexception取得します。

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

指定した非同期操作を実行し、結果を返します。 コミット中にエラーが発生した場合にトランザクションがロールバックされたかどうかをチェックできます。

適用対象