다음을 통해 공유


ExecutionStrategy 클래스

정의

구현에 대한 IExecutionStrategy 기본 클래스입니다.

public abstract class ExecutionStrategy : Microsoft.EntityFrameworkCore.Storage.IExecutionStrategy
type ExecutionStrategy = class
    interface IExecutionStrategy
Public MustInherit Class ExecutionStrategy
Implements IExecutionStrategy
상속
ExecutionStrategy
파생
구현

설명

서비스 수명은 입니다 Scoped. 즉, 각 DbContext instance 이 서비스의 자체 instance 사용합니다. 구현은 모든 수명에 등록된 다른 서비스에 따라 달라질 수 있습니다. 구현은 스레드로부터 안전할 필요가 없습니다.

자세한 내용 과 예제는 연결 복원력 및 데이터베이스 재시 도를 참조하세요.

생성자

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에서 exception 만든 예외이고 가장 안쪽에서 를 호출 exceptionHandler 하는 한 에서 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)

실행이 성공한 후 지정된 예외를 throw할 수 있는지 여부를 결정합니다.

확장 메서드

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)

지정된 비동기 작업을 실행하고 결과를 반환합니다. 커밋 중에 오류가 발생하는 경우 트랜잭션이 롤백되었는지 여부를 검사 수 있습니다.

적용 대상