Condividi tramite


Classe DbExecutionStrategy

[Questa pagina è specifica della versione 6 di Entity Framework. La versione più recente è disponibile come pacchetto NuGet per "Entity Framework". Per ulteriori informazioni su Entity Framework, vedere la pagina msdn.com/data/ef.]

Fornisce l'implementazione di base del meccanismo di riesecuzione per le operazioni non affidabili e le condizioni temporanee che utilizza ritardi tra i tentativi che aumentano esponenzialmente.

Gerarchia di ereditarietà

System.Object
  System.Data.Entity.Infrastructure.DbExecutionStrategy
    System.Data.Entity.SqlServer.SqlAzureExecutionStrategy

Spazio dei nomi:  System.Data.Entity.Infrastructure
Assembly:  EntityFramework (in EntityFramework.dll)

Sintassi

'Dichiarazione
Public MustInherit Class DbExecutionStrategy _
    Implements IDbExecutionStrategy
'Utilizzo
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

Il tipo DbExecutionStrategy espone i seguenti membri.

Costruttori

  rapporti Descrizione
Metodo protetto DbExecutionStrategy() Inizializza una nuova istanza della classe DbExecutionStrategy.
Metodo protetto DbExecutionStrategy(Int32, TimeSpan) Inizializza una nuova istanza della classe DbExecutionStrategy con i limiti specificati per il numero di tentativi e il ritardo tra i tentativi.

In alto

Proprietà

  rapporti Descrizione
Proprietà pubblica RetriesOnFailure Ottiene un valore che indica se DbExecutionStrategy può ripetere l'esecuzione dopo un errore.

In alto

Metodi

  rapporti Descrizione
Metodo pubblico Equals (Ereditato da Object)
Metodo pubblico Execute(Action) Esegue ripetutamente l'operazione specificata mentre soddisfa i criteri correnti per i tentativi.
Metodo pubblico Execute<TResult>(Func<TResult>) Esegue ripetutamente l'operazione specificata mentre soddisfa i criteri correnti per i tentativi.
Metodo pubblico ExecuteAsync(Func<Task>, CancellationToken) Esegue ripetutamente l'operazione asincrona specificata mentre soddisfa i criteri correnti per i tentativi.
Metodo pubblico ExecuteAsync<TResult>(Func<Task<TResult>>, CancellationToken) Esegue ripetutamente l'operazione asincrona specificata mentre soddisfa i criteri correnti per i tentativi.
Metodo protetto Finalize (Ereditato da Object)
Metodo pubblico GetHashCode (Ereditato da Object)
Metodo protetto GetNextDelay Determina se l'operazione deve essere riprovata e stabilisce il ritardo prima del prossimo tentativo.
Metodo pubblico GetType (Ereditato da Object)
Metodo protetto MemberwiseClone (Ereditato da Object)
Metodo protetto ShouldRetryOn Determina se l'eccezione specificata rappresenta un errore temporaneo che può essere compensato con un tentativo.
Metodo pubblico ToString (Ereditato da Object)
Metodo pubblicoMembro statico UnwrapAndHandleException<T> Ottiene in modo ricorsivo InnerException da exception purché si tratti di un oggetto EntityException, DbUpdateException o UpdateException e lo passa a exceptionHandler.

In alto

Note

Verrà creata una nuova istanza ogni volta che viene eseguita una operazione. La formula seguente consente di calcolare il ritardo dopo retryCount tentativi: min(random(1, 1.1) * (2 ^ retryCount - 1), maxDelay) retryCount inizia da 0. Il fattore casuale distribuisce uniformemente i tentativi da più operazioni simultanee che restituiscono un errore simultaneamente.

Thread safety

Qualsiasi membro static (Shared in Visual Basic) pubblico di questo tipo è thread-safe. Non è invece garantita la sicurezza dei membri dell'istanza.

Vedere anche

Riferimento

Spazio dei nomi System.Data.Entity.Infrastructure