Compartir a través de


DbExecutionStrategy (Clase)

[Esta página es específica de la versión 6 de Entity Framework. La versión más reciente está disponible como el paquete NuGet de Entity Framework. Para más información sobre Entity Framework, consulte msdn.com/es-ES/data/ef].

Proporciona la implementación base del mecanismo de reintentos para las operaciones y las condiciones transitorias no confiables que usan retrasos que aumentan exponencialmente entre los reintentos.

Jerarquía de herencia

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

Espacio de nombres:  System.Data.Entity.Infrastructure
Ensamblado:  EntityFramework (en EntityFramework.dll)

Sintaxis

'Declaración
Public MustInherit Class DbExecutionStrategy _
    Implements IDbExecutionStrategy
'Uso
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

El tipo DbExecutionStrategy expone los siguientes miembros.

Constructores

  Name Descripción
Método protegido DbExecutionStrategy() Inicializa una nueva instancia de la clase DbExecutionStrategy.
Método protegido DbExecutionStrategy(Int32, TimeSpan) Inicializa una nueva instancia de la clase DbExecutionStrategy con los límites especificados para el número de reintentos y el intervalo entre reintentos.

Superior

Propiedades

  Name Descripción
Propiedad pública RetriesOnFailure Obtiene un valor que indica si DbExecutionStrategy puede reintentar la ejecución tras un error.

Superior

Métodos

  Name Descripción
Método público Equals (Se hereda de Object).
Método público Execute(Action) Ejecuta de forma repetitiva la operación especificada mientras que cumple la directiva de reintentos actual.
Método público Execute<TResult>(Func<TResult>) Ejecuta de forma repetitiva la operación especificada mientras que cumple la directiva de reintentos actual.
Método público ExecuteAsync(Func<Task>, CancellationToken) Ejecuta de forma repetitiva la operación asincrónica especificada mientras cumple la directiva de reintentos actual.
Método público ExecuteAsync<TResult>(Func<Task<TResult>>, CancellationToken) Ejecuta repetidamente la operación asincrónica especificada mientras que cumple la directiva de reintentos actual.
Método protegido Finalize (Se hereda de Object).
Método público GetHashCode (Se hereda de Object).
Método protegido GetNextDelay Determina si la operación se debe reintentar y el retraso antes del siguiente intento.
Método público GetType (Se hereda de Object).
Método protegido MemberwiseClone (Se hereda de Object).
Método protegido ShouldRetryOn Determina si la excepción especificada representa un error transitorio que puede compensar con un reintento.
Método público ToString (Se hereda de Object).
Método públicoMiembro estático UnwrapAndHandleException<T> Obtiene de forma recursiva InnerException de exception siempre y cuando sea una EntityException, DbUpdateException o UpdateException y la pase a exceptionHandler.

Superior

Comentarios

Se creará una instancia nueva cada vez que se ejecute una operación. Se emplea la fórmula siguiente para calcular el retraso después de retryCount intentos: min(random(1, 1.1) * (2 ^ retryCount - 1), maxDelay) retryCount comienza en 0. El factor aleatorio distribuye uniformemente los reintentos de varias operaciones simultáneas que fracasan simultáneamente.

Seguridad para subprocesos

Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancia sean seguros para subprocesos.

Vea también

Referencia

System.Data.Entity.Infrastructure (Espacio de nombres)