Freigeben über


ExecutionStrategy Klasse

Definition

Die Basisklasse für IExecutionStrategy Implementierungen.

public abstract class ExecutionStrategy : Microsoft.EntityFrameworkCore.Storage.IExecutionStrategy
type ExecutionStrategy = class
    interface IExecutionStrategy
Public MustInherit Class ExecutionStrategy
Implements IExecutionStrategy
Vererbung
ExecutionStrategy
Abgeleitet
Implementiert

Hinweise

Die Dienstlebensdauer ist Scoped. Dies bedeutet, dass jeder DbContext instance seine eigene instance dieses Diensts verwendet. Die Implementierung kann von anderen Diensten abhängen, die mit einer beliebigen Lebensdauer registriert sind. Die Implementierung muss nicht threadsicher sein.

Weitere Informationen und Beispiele finden Sie unter Verbindungsresilienz und Datenbank-Wiederholungen .

Konstruktoren

ExecutionStrategy(DbContext, Int32, TimeSpan)

Erstellt eine neue Instanz von ExecutionStrategy.

ExecutionStrategy(ExecutionStrategyContext, Int32, TimeSpan)

Erstellt eine neue Instanz von ExecutionStrategy.

ExecutionStrategy(ExecutionStrategyDependencies, Int32, TimeSpan)

Erstellt eine neue Instanz von ExecutionStrategy.

Felder

DefaultMaxDelay

Die standardmäßige maximale Zeitverzögerung zwischen Wiederholungsversuchen muss nicht negativ sein.

DefaultMaxRetryCount

Die Standardanzahl von Wiederholungsversuchen.

Eigenschaften

Context

Der Kontext, in dem die Vorgänge aufgerufen werden.

Current

Ruft die derzeit ausgeführte Strategie ab oder legt sie fest. Alle geschachtelten Aufrufe werden von der äußersten Strategie verarbeitet.

Dependencies

Abhängigkeiten für diesen Dienst.

ExceptionsEncountered

Die Liste der Ausnahmen, die dazu geführt haben, dass der Vorgang bisher wiederholt wurde.

Logger

Die Protokollierung für diese ExecutionStrategy.

MaxRetryCount

Die maximale Anzahl der Wiederholungsversuche.

MaxRetryDelay

Die maximale Verzögerung zwischen Wiederholungsversuchen.

Random

Ein Pseudo-Zufallszahlengenerator, der verwendet werden kann, um die Verzögerung zwischen Wiederholungen zu variieren.

RetriesOnFailure

Gibt an, ob die IExecutionStrategy Ausführung nach einem Fehler wiederholt werden kann.

Suspended
Veraltet.

Gibt an, ob die Strategie angehalten wird. Die Strategie wird in der Regel während der Ausführung angehalten, um die rekursive Ausführung von geschachtelten Vorgängen zu vermeiden.

Methoden

CallOnWrappedException<TResult>(Exception, Func<Exception,TResult>)

Ruft InnerException rekursiv ab exception , solange es sich um eine ausnahme handelt, die von Entity Framework erstellt wurde, und ruft exceptionHandler die innerste ausnahme auf.

Execute<TState,TResult>(Func<TState,TResult>, Func<TState,ExecutionResult<TResult>>, TState)

Führt den angegebenen Vorgang aus und gibt das Ergebnis zurück.

Execute<TState,TResult>(TState, Func<DbContext,TState,TResult>, Func<DbContext,TState,ExecutionResult<TResult>>)

Führt den angegebenen Vorgang aus und gibt das Ergebnis zurück.

ExecuteAsync<TState,TResult>(Func<TState,CancellationToken,Task<TResult>>, Func<TState,CancellationToken,Task<ExecutionResult<TResult>>>, TState, CancellationToken)

Führt den angegebenen asynchronen Vorgang aus und gibt das Ergebnis zurück.

ExecuteAsync<TState,TResult>(TState, Func<DbContext,TState,CancellationToken, Task<TResult>>, Func<DbContext,TState,CancellationToken,Task<ExecutionResult<TResult>>>, CancellationToken)

Führt den angegebenen asynchronen Vorgang aus und gibt das Ergebnis zurück.

ExecuteInTransaction<TState,TResult>(Func<TState,TResult>, Func<TState,Boolean>, TState)

Führt den angegebenen Vorgang in einer Transaktion aus und gibt das Ergebnis nach dem Commit zurück.

ExecuteInTransactionAsync<TState,TResult>(Func<TState,CancellationToken, Task<TResult>>, Func<TState,CancellationToken,Task<Boolean>>, TState, CancellationToken)

Führt den angegebenen asynchronen Vorgang aus und gibt das Ergebnis zurück.

GetNextDelay(Exception)

Bestimmt, ob der Vorgang wiederholt werden soll, und die Verzögerung vor dem nächsten Versuch.

OnFirstExecution()

Methode, die vor der ersten Ausführung des Vorgangs aufgerufen wird

OnRetry()

Methode, die aufgerufen wird, bevor die Ausführung des Vorgangs wiederholt wird

ShouldRetryOn(Exception)

Bestimmt, ob die angegebene Ausnahme einen vorübergehenden Fehler darstellt, der durch einen Wiederholungsversuch kompensiert werden kann.

ShouldVerifySuccessOn(Exception)

Bestimmt, ob die angegebene Ausnahme nach einer erfolgreichen Ausführung ausgelöst werden kann.

Erweiterungsmethoden

Execute(IExecutionStrategy, Action)

Führt den angegebenen Vorgang aus.

Execute<TState>(IExecutionStrategy, TState, Action<TState>)

Führt den angegebenen Vorgang aus.

Execute<TState>(IExecutionStrategy, Action<TState>, TState)

Führt den angegebenen Vorgang aus.

Execute<TResult>(IExecutionStrategy, Func<TResult>)

Führt den angegebenen Vorgang aus und gibt das Ergebnis zurück.

Execute<TState,TResult>(IExecutionStrategy, TState, Func<TState,TResult>, Func<TState,ExecutionResult<TResult>>)

Führt den angegebenen Vorgang aus und gibt das Ergebnis zurück.

Execute<TState,TResult>(IExecutionStrategy, TState, Func<TState,TResult>)

Führt den angegebenen Vorgang aus und gibt das Ergebnis zurück.

Execute<TState,TResult>(IExecutionStrategy, Func<TState,TResult>, TState)

Führt den angegebenen Vorgang aus und gibt das Ergebnis zurück.

Execute<TState,TResult>(IExecutionStrategy, Func<TState,TResult>, Func<TState,ExecutionResult<TResult>>, TState)
Veraltet.

Führt den angegebenen Vorgang aus und gibt das Ergebnis zurück.

ExecuteAsync(IExecutionStrategy, Func<CancellationToken,Task>, CancellationToken)

Führt den angegebenen asynchronen Vorgang aus.

ExecuteAsync(IExecutionStrategy, Func<Task>)

Führt den angegebenen asynchronen Vorgang aus.

ExecuteAsync<TState>(IExecutionStrategy, TState, Func<TState,CancellationToken,Task>, CancellationToken)

Führt den angegebenen asynchronen Vorgang aus.

ExecuteAsync<TState>(IExecutionStrategy, TState, Func<TState,Task>)

Führt den angegebenen asynchronen Vorgang aus.

ExecuteAsync<TState>(IExecutionStrategy, Func<TState,CancellationToken,Task>, TState, CancellationToken)

Führt den angegebenen asynchronen Vorgang aus.

ExecuteAsync<TState>(IExecutionStrategy, Func<TState,Task>, TState)

Führt den angegebenen asynchronen Vorgang aus.

ExecuteAsync<TResult>(IExecutionStrategy, Func<CancellationToken,Task<TResult>>, CancellationToken)

Führt den angegebenen asynchronen Vorgang aus und gibt das Ergebnis zurück.

ExecuteAsync<TResult>(IExecutionStrategy, Func<Task<TResult>>)

Führt den angegebenen asynchronen Vorgang aus und gibt das Ergebnis zurück.

ExecuteAsync<TState,TResult>(IExecutionStrategy, TState, Func<TState, CancellationToken,Task<TResult>>, Func<TState,CancellationToken, Task<ExecutionResult<TResult>>>, CancellationToken)

Führt den angegebenen asynchronen Vorgang aus und gibt das Ergebnis zurück.

ExecuteAsync<TState,TResult>(IExecutionStrategy, TState, Func<TState,CancellationToken,Task<TResult>>, CancellationToken)

Führt den angegebenen asynchronen Vorgang aus und gibt das Ergebnis zurück.

ExecuteAsync<TState,TResult>(IExecutionStrategy, TState, Func<TState,Task<TResult>>)

Führt den angegebenen asynchronen Vorgang aus und gibt das Ergebnis zurück.

ExecuteAsync<TState,TResult>(IExecutionStrategy, Func<TState,CancellationToken,Task<TResult>>, TState, CancellationToken)

Führt den angegebenen asynchronen Vorgang aus und gibt das Ergebnis zurück.

ExecuteAsync<TState,TResult>(IExecutionStrategy, Func<TState,Task<TResult>>, TState)

Führt den angegebenen asynchronen Vorgang aus und gibt das Ergebnis zurück.

ExecuteInTransaction(IExecutionStrategy, Action, Func<Boolean>)

Führt den angegebenen Vorgang in einer Transaktion aus. Ermöglicht die Überprüfung, ob für die Transaktion ein Rollback ausgeführt wurde, wenn während des Commits ein Fehler auftritt.

ExecuteInTransaction<TState>(IExecutionStrategy, TState, Action<TState>, Func<TState,Boolean>)

Führt den angegebenen Vorgang in einer Transaktion aus. Ermöglicht die Überprüfung, ob für die Transaktion ein Rollback ausgeführt wurde, wenn während des Commits ein Fehler auftritt.

ExecuteInTransaction<TResult>(IExecutionStrategy, Func<TResult>, Func<Boolean>)

Führt den angegebenen Vorgang in einer Transaktion aus und gibt das Ergebnis zurück. Ermöglicht die Überprüfung, ob für die Transaktion ein Rollback ausgeführt wurde, wenn während des Commits ein Fehler auftritt.

ExecuteInTransaction<TState,TResult>(IExecutionStrategy, TState, Func<TState,TResult>, Func<TState,Boolean>)

Führt den angegebenen Vorgang in einer Transaktion aus und gibt das Ergebnis zurück. Ermöglicht die Überprüfung, ob für die Transaktion ein Rollback ausgeführt wurde, wenn während des Commits ein Fehler auftritt.

ExecuteInTransaction<TState,TResult>(IExecutionStrategy, Func<TState,TResult>, Func<TState,Boolean>, TState, DbContext)

Führt den angegebenen Vorgang in einer Transaktion aus und gibt das Ergebnis nach dem Commit zurück.

ExecuteInTransactionAsync(IExecutionStrategy, Func<CancellationToken,Task>, Func<CancellationToken,Task<Boolean>>, CancellationToken)

Führt den angegebenen asynchronen Vorgang in einer Transaktion aus. Ermöglicht die Überprüfung, ob für die Transaktion ein Rollback ausgeführt wurde, wenn während des Commits ein Fehler auftritt.

ExecuteInTransactionAsync(IExecutionStrategy, Func<Task>, Func<Task<Boolean>>)

Führt den angegebenen asynchronen Vorgang in einer Transaktion aus. Ermöglicht die Überprüfung, ob für die Transaktion ein Rollback ausgeführt wurde, wenn während des Commits ein Fehler auftritt.

ExecuteInTransactionAsync<TState>(IExecutionStrategy, TState, Func<TState,CancellationToken,Task>, Func<TState,CancellationToken, Task<Boolean>>, CancellationToken)

Führt den angegebenen asynchronen Vorgang in einer Transaktion aus. Ermöglicht die Überprüfung, ob für die Transaktion ein Rollback ausgeführt wurde, wenn während des Commits ein Fehler auftritt.

ExecuteInTransactionAsync<TResult>(IExecutionStrategy, Func<CancellationToken, Task<TResult>>, Func<CancellationToken,Task<Boolean>>, CancellationToken)

Führt den angegebenen asynchronen Vorgang in einer Transaktion aus und gibt das Ergebnis zurück. Ermöglicht die Überprüfung, ob für die Transaktion ein Rollback ausgeführt wurde, wenn während des Commits ein Fehler auftritt.

ExecuteInTransactionAsync<TState,TResult>(IExecutionStrategy, TState, Func<TState,CancellationToken,Task<TResult>>, Func<TState, CancellationToken,Task<Boolean>>, CancellationToken)

Führt den angegebenen asynchronen Vorgang in einer Transaktion aus und gibt das Ergebnis zurück. Ermöglicht die Überprüfung, ob für die Transaktion ein Rollback ausgeführt wurde, wenn während des Commits ein Fehler auftritt.

ExecuteInTransactionAsync<TState,TResult>(IExecutionStrategy, Func<TState,CancellationToken,Task<TResult>>, Func<TState,CancellationToken, Task<Boolean>>, TState, DbContext, CancellationToken)

Führt den angegebenen asynchronen Vorgang aus und gibt das Ergebnis zurück.

ExecuteInTransaction(IExecutionStrategy, Action, Func<Boolean>, IsolationLevel)

Führt den angegebenen Vorgang in einer Transaktion aus. Ermöglicht die Überprüfung, ob für die Transaktion ein Rollback ausgeführt wurde, wenn während des Commits ein Fehler auftritt.

ExecuteInTransaction<TState>(IExecutionStrategy, TState, Action<TState>, Func<TState,Boolean>, IsolationLevel)

Führt den angegebenen Vorgang in einer Transaktion aus. Ermöglicht die Überprüfung, ob für die Transaktion ein Rollback ausgeführt wurde, wenn während des Commits ein Fehler auftritt.

ExecuteInTransaction<TResult>(IExecutionStrategy, Func<TResult>, Func<Boolean>, IsolationLevel)

Führt den angegebenen Vorgang in einer Transaktion aus und gibt das Ergebnis zurück. Ermöglicht die Überprüfung, ob für die Transaktion ein Rollback ausgeführt wurde, wenn während des Commits ein Fehler auftritt.

ExecuteInTransaction<TState,TResult>(IExecutionStrategy, TState, Func<TState,TResult>, Func<TState,Boolean>, IsolationLevel)

Führt den angegebenen Vorgang in einer Transaktion aus und gibt das Ergebnis zurück. Ermöglicht die Überprüfung, ob für die Transaktion ein Rollback ausgeführt wurde, wenn während des Commits ein Fehler auftritt.

ExecuteInTransactionAsync(IExecutionStrategy, Func<CancellationToken,Task>, Func<CancellationToken,Task<Boolean>>, IsolationLevel, CancellationToken)

Führt den angegebenen asynchronen Vorgang in einer Transaktion aus. Ermöglicht die Überprüfung, ob für die Transaktion ein Rollback ausgeführt wurde, wenn während des Commits ein Fehler auftritt.

ExecuteInTransactionAsync(IExecutionStrategy, Func<Task>, Func<Task<Boolean>>, IsolationLevel)

Führt den angegebenen asynchronen Vorgang in einer Transaktion aus. Ermöglicht die Überprüfung, ob für die Transaktion ein Rollback ausgeführt wurde, wenn während des Commits ein Fehler auftritt.

ExecuteInTransactionAsync<TState>(IExecutionStrategy, TState, Func<TState,CancellationToken,Task>, Func<TState,CancellationToken, Task<Boolean>>, IsolationLevel, CancellationToken)

Führt den angegebenen asynchronen Vorgang in einer Transaktion aus. Ermöglicht die Überprüfung, ob für die Transaktion ein Rollback ausgeführt wurde, wenn während des Commits ein Fehler auftritt.

ExecuteInTransactionAsync<TResult>(IExecutionStrategy, Func<CancellationToken, Task<TResult>>, Func<CancellationToken,Task<Boolean>>, IsolationLevel, CancellationToken)

Führt den angegebenen asynchronen Vorgang in einer Transaktion aus und gibt das Ergebnis zurück. Ermöglicht die Überprüfung, ob für die Transaktion ein Rollback ausgeführt wurde, wenn während des Commits ein Fehler auftritt.

ExecuteInTransactionAsync<TState,TResult>(IExecutionStrategy, TState, Func<TState,CancellationToken,Task<TResult>>, Func<TState, CancellationToken,Task<Boolean>>, IsolationLevel, CancellationToken)

Führt den angegebenen asynchronen Vorgang aus und gibt das Ergebnis zurück. Ermöglicht die Überprüfung, ob für die Transaktion ein Rollback ausgeführt wurde, wenn während des Commits ein Fehler auftritt.

Gilt für: