Share via


IDbCommandInterceptor 介面

定義

允許攔截傳送至關係資料庫的命令。

public interface IDbCommandInterceptor : Microsoft.EntityFrameworkCore.Diagnostics.IInterceptor
type IDbCommandInterceptor = interface
    interface IInterceptor
Public Interface IDbCommandInterceptor
Implements IInterceptor
衍生
實作

備註

命令攔截器可用來檢視、變更或隱藏 的執行 DbCommand ,以及在將結果傳回 EF 之前修改結果。

如果未實作所有方法,請考慮繼承自 DbCommandInterceptor

使用 AddInterceptors(IInterceptor[]) 來註冊應用程式攔截器。

延伸模組也可以在內部服務提供者中註冊攔截器。 如果找到插入和應用程式攔截器,則插入的攔截器會依從服務提供者解析的循序執行,然後最後執行應用程式攔截器。

如需詳細資訊和範例,請參閱 EF Core 攔截器

方法

CommandCanceled(DbCommand, CommandEndEventData)

取消命令時呼叫。

CommandCanceledAsync(DbCommand, CommandEndEventData, CancellationToken)

取消命令時呼叫。

CommandCreated(CommandEndEventData, DbCommand)

在 EF 呼叫 之後立即呼叫 CreateCommand()

CommandCreating(CommandCorrelatedEventData, InterceptionResult<DbCommand>)

在 EF 想要呼叫 之前呼叫 CreateCommand()

CommandFailed(DbCommand, CommandErrorEventData)

當命令執行失敗且發生例外狀況時呼叫。

CommandFailedAsync(DbCommand, CommandErrorEventData, CancellationToken)

當命令執行失敗且發生例外狀況時呼叫。

CommandInitialized(CommandEndEventData, DbCommand)

在 EF 初始化和其他命令組態之後呼叫 CommandText

DataReaderClosing(DbCommand, DataReaderClosingEventData, InterceptionResult)

在 EF 想要呼叫 之前呼叫 Close()

DataReaderClosingAsync(DbCommand, DataReaderClosingEventData, InterceptionResult)

在 EF 想要在非同步內容中呼叫之前呼叫 CloseAsync()

DataReaderDisposing(DbCommand, DataReaderDisposingEventData, InterceptionResult)

執行 即將處置 時 DbDataReader 呼叫。

NonQueryExecuted(DbCommand, CommandExecutedEventData, Int32)

在 EF 呼叫 之後立即呼叫 ExecuteNonQuery()

NonQueryExecutedAsync(DbCommand, CommandExecutedEventData, Int32, CancellationToken)

在 EF 呼叫 之後立即呼叫 ExecuteNonQueryAsync()

NonQueryExecuting(DbCommand, CommandEventData, InterceptionResult<Int32>)

在 EF 想要呼叫 之前呼叫 ExecuteNonQuery()

NonQueryExecutingAsync(DbCommand, CommandEventData, InterceptionResult<Int32>, CancellationToken)

在 EF 想要呼叫 之前呼叫 ExecuteNonQueryAsync()

ReaderExecuted(DbCommand, CommandExecutedEventData, DbDataReader)

在 EF 呼叫 之後立即呼叫 ExecuteReader()

ReaderExecutedAsync(DbCommand, CommandExecutedEventData, DbDataReader, CancellationToken)

在 EF 呼叫 之後立即呼叫 ExecuteReaderAsync()

ReaderExecuting(DbCommand, CommandEventData, InterceptionResult<DbDataReader>)

在 EF 想要呼叫 之前呼叫 ExecuteReader()

ReaderExecutingAsync(DbCommand, CommandEventData, InterceptionResult<DbDataReader>, CancellationToken)

在 EF 想要呼叫 之前呼叫 ExecuteReaderAsync()

ScalarExecuted(DbCommand, CommandExecutedEventData, Object)

在 EF 呼叫 之後立即呼叫 ExecuteScalar()

ScalarExecutedAsync(DbCommand, CommandExecutedEventData, Object, CancellationToken)

在 EF 呼叫 之後立即呼叫 ExecuteScalarAsync()

ScalarExecuting(DbCommand, CommandEventData, InterceptionResult<Object>)

在 EF 想要呼叫 之前呼叫 ExecuteScalar()

ScalarExecutingAsync(DbCommand, CommandEventData, InterceptionResult<Object>, CancellationToken)

在 EF 想要呼叫 之前呼叫 ExecuteScalarAsync()

適用於