語言

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 攔截器 。

方法

名稱 Description
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() 。

適用於