Share via


DbCommandInterceptor 类

定义

实现 IDbCommandInterceptor 接口方法子集时使用的 抽象基类。

public abstract class DbCommandInterceptor : Microsoft.EntityFrameworkCore.Diagnostics.IDbCommandInterceptor, Microsoft.EntityFrameworkCore.Diagnostics.IInterceptor
type DbCommandInterceptor = class
    interface IDbCommandInterceptor
    interface IInterceptor
Public MustInherit Class DbCommandInterceptor
Implements IDbCommandInterceptor, IInterceptor
继承
DbCommandInterceptor
实现

注解

有关详细信息和示例 ,请参阅 EF Core 侦听器

构造函数

DbCommandInterceptor()

实现 IDbCommandInterceptor 接口方法子集时使用的 抽象基类。

方法

CommandCanceled(DbCommand, CommandEndEventData)

取消命令时调用。

CommandCanceledAsync(DbCommand, CommandEndEventData, CancellationToken)

取消命令时调用。

CommandCreated(CommandEndEventData, DbCommand)

在 EF 调用 后立即调用 CreateCommand()

如果侦听器禁止在 中创建 CommandCreating(CommandCorrelatedEventData, InterceptionResult<DbCommand>)命令,则仍会调用此方法。 在本例中, result 是 返回 CommandCreating(CommandCorrelatedEventData, InterceptionResult<DbCommand>)的结果。

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

如果侦听器在 中 NonQueryExecuting(DbCommand, CommandEventData, InterceptionResult<Int32>)禁止执行命令,则仍会调用此方法。 在本例中, result 是 返回 NonQueryExecuting(DbCommand, CommandEventData, InterceptionResult<Int32>)的结果。

NonQueryExecutedAsync(DbCommand, CommandExecutedEventData, Int32, CancellationToken)

在 EF 调用 后立即调用 ExecuteNonQueryAsync()

如果侦听器在 中 NonQueryExecutingAsync(DbCommand, CommandEventData, InterceptionResult<Int32>, CancellationToken)禁止执行命令,则仍会调用此方法。 在本例中, result 是 返回 NonQueryExecutingAsync(DbCommand, CommandEventData, InterceptionResult<Int32>, CancellationToken)的结果。

NonQueryExecuting(DbCommand, CommandEventData, InterceptionResult<Int32>)

在 EF 打算调用 之前调用 ExecuteNonQuery()

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

在 EF 打算调用 之前调用 ExecuteNonQueryAsync()

ReaderExecuted(DbCommand, CommandExecutedEventData, DbDataReader)

在 EF 调用 后立即调用 ExecuteReader()

如果侦听器在 中 ReaderExecuting(DbCommand, CommandEventData, InterceptionResult<DbDataReader>)禁止执行命令,则仍会调用此方法。 在本例中, result 是 返回 ReaderExecuting(DbCommand, CommandEventData, InterceptionResult<DbDataReader>)的结果。

ReaderExecutedAsync(DbCommand, CommandExecutedEventData, DbDataReader, CancellationToken)

在 EF 调用 后立即调用 ExecuteReaderAsync()

如果侦听器在 中 ReaderExecutingAsync(DbCommand, CommandEventData, InterceptionResult<DbDataReader>, CancellationToken)禁止执行命令,则仍会调用此方法。 在本例中, result 是 返回 ReaderExecutingAsync(DbCommand, CommandEventData, InterceptionResult<DbDataReader>, CancellationToken)的结果。

ReaderExecuting(DbCommand, CommandEventData, InterceptionResult<DbDataReader>)

在 EF 打算调用 之前调用 ExecuteReader()

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

在 EF 打算调用 之前调用 ExecuteReaderAsync()

ScalarExecuted(DbCommand, CommandExecutedEventData, Object)

在 EF 调用 后立即调用 ExecuteScalar()

如果侦听器在 中 ScalarExecuting(DbCommand, CommandEventData, InterceptionResult<Object>)禁止执行命令,则仍会调用此方法。 在本例中, result 是 返回 ScalarExecuting(DbCommand, CommandEventData, InterceptionResult<Object>)的结果。

ScalarExecutedAsync(DbCommand, CommandExecutedEventData, Object, CancellationToken)

在 EF 调用 后立即调用 ExecuteScalarAsync()

如果侦听器在 中 ScalarExecutingAsync(DbCommand, CommandEventData, InterceptionResult<Object>, CancellationToken)禁止执行命令,则仍会调用此方法。 在本例中, result 是 返回 ScalarExecutingAsync(DbCommand, CommandEventData, InterceptionResult<Object>, CancellationToken)的结果。

ScalarExecuting(DbCommand, CommandEventData, InterceptionResult<Object>)

在 EF 打算调用 之前调用 ExecuteScalar()

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

在 EF 打算调用 之前调用 ExecuteScalarAsync()

适用于