语言

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

适用于