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()

适用于