DatabaseLogFormatter Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
public class DatabaseLogFormatter : System.Data.Entity.Infrastructure.Interception.IDbCommandInterceptor, System.Data.Entity.Infrastructure.Interception.IDbConnectionInterceptor, System.Data.Entity.Infrastructure.Interception.IDbTransactionInterceptor
type DatabaseLogFormatter = class
interface IDbCommandInterceptor
interface IDbConnectionInterceptor
interface IDbTransactionInterceptor
interface IDbInterceptor
Public Class DatabaseLogFormatter
Implements IDbCommandInterceptor, IDbConnectionInterceptor, IDbTransactionInterceptor
- Наследование
-
DatabaseLogFormatter
- Реализации
Комментарии
Чтобы задать новый модуль форматирования, создайте конфигурацию на основе кода для EF с помощью DbConfiguration , а затем задайте класс модуля форматирования для использования с SetDatabaseLogFormatter(Func<DbContext,Action<String>,DatabaseLogFormatter>). Обратите внимание, что установка типа модуля форматирования для использования с этим методом изменяет способ ведения журнала команд при Log использовании . По-прежнему необходимо установить значение в Action<T> , Log прежде чем какие-либо команды будут записаны в журнал. Более низкий уровень управления ведением журнала и перехватом см IDbCommandInterceptor . в разделах и DbInterception. Перехватчики также можно зарегистрировать в файле конфигурации приложения. Дополнительные сведения о конфигурации Entity Framework см http://go.microsoft.com/fwlink/?LinkId=260883 . в этой статье.
Конструкторы
DatabaseLogFormatter(Action<String>) |
Создает модуль форматирования, который не будет фильтровать ни по одному DbContext и вместо этого будет регистрировать каждую команду из любого контекста, а также команды, которые не исходят из контекста. |
DatabaseLogFormatter(DbContext, Action<String>) |
Создает модуль форматирования, который будет регистрировать только команды , поступающие из заданного DbContext экземпляра. |
Свойства
Context |
Контекст, для которого регистрируются команды, или значение NULL, если регистрируются команды из всех контекстов. |
Stopwatch |
Устаревшие..
Это свойство устарело. Его использование может привести к неправильному времени выполнения в журнале. Вместо него вызовите метод GetStopwatch(DbCommandInterceptionContext). |
Методы
BeganTransaction(DbConnection, BeginTransactionInterceptionContext) |
Вызывается после BeginTransaction(IsolationLevel) вызова . Реализация этого метода по умолчанию фильтруется по параметру DbContextContext, если таковой есть, а затем регистрирует событие. |
BeginningTransaction(DbConnection, BeginTransactionInterceptionContext) |
Не записывает данные в журнал, если не переопределен. |
Closed(DbConnection, DbConnectionInterceptionContext) |
Вызывается после Close() вызова . Реализация этого метода по умолчанию фильтруется по параметру DbContextContext, если таковой есть, а затем регистрирует событие. |
Closing(DbConnection, DbConnectionInterceptionContext) |
Не записывает данные в журнал, если не переопределен. |
Committed(DbTransaction, DbTransactionInterceptionContext) |
Этот метод вызывается после Commit() вызова . Реализация этого метода по умолчанию фильтруется по параметру DbContextContext, если таковой есть, а затем регистрирует событие. |
Committing(DbTransaction, DbTransactionInterceptionContext) |
Не записывает данные в журнал, если не переопределен. |
ConnectionGetting(DbTransaction, DbTransactionInterceptionContext<DbConnection>) |
Не записывает данные в журнал, если не переопределен. |
ConnectionGot(DbTransaction, DbTransactionInterceptionContext<DbConnection>) |
Не записывает данные в журнал, если не переопределен. |
ConnectionStringGetting(DbConnection, DbConnectionInterceptionContext<String>) |
Не записывает данные в журнал, если не переопределен. |
ConnectionStringGot(DbConnection, DbConnectionInterceptionContext<String>) |
Не записывает данные в журнал, если не переопределен. |
ConnectionStringSet(DbConnection, DbConnectionPropertyInterceptionContext<String>) |
Не записывает данные в журнал, если не переопределен. |
ConnectionStringSetting(DbConnection, DbConnectionPropertyInterceptionContext<String>) |
Не записывает данные в журнал, если не переопределен. |
ConnectionTimeoutGetting(DbConnection, DbConnectionInterceptionContext<Int32>) |
Не записывает данные в журнал, если не переопределен. |
ConnectionTimeoutGot(DbConnection, DbConnectionInterceptionContext<Int32>) |
Не записывает данные в журнал, если не переопределен. |
DatabaseGetting(DbConnection, DbConnectionInterceptionContext<String>) |
Не записывает данные в журнал, если не переопределен. |
DatabaseGot(DbConnection, DbConnectionInterceptionContext<String>) |
Не записывает данные в журнал, если не переопределен. |
DataSourceGetting(DbConnection, DbConnectionInterceptionContext<String>) |
Не записывает данные в журнал, если не переопределен. |
DataSourceGot(DbConnection, DbConnectionInterceptionContext<String>) |
Не записывает данные в журнал, если не переопределен. |
Disposed(DbConnection, DbConnectionInterceptionContext) |
Не записывает данные в журнал, если не переопределен. |
Disposed(DbTransaction, DbTransactionInterceptionContext) |
Не записывает данные в журнал, если не переопределен. |
Disposing(DbConnection, DbConnectionInterceptionContext) |
Вызывается до Dispose() вызова . Реализация этого метода по умолчанию фильтруется по параметру DbContextContext, если таковой есть, а затем регистрирует событие. |
Disposing(DbTransaction, DbTransactionInterceptionContext) |
Этот метод вызывается перед Dispose() вызовом. Реализация этого метода по умолчанию фильтруется по параметру DbContextContext, если таковой есть, а затем регистрирует событие. |
EnlistedTransaction(DbConnection, EnlistTransactionInterceptionContext) |
Не записывает данные в журнал, если не переопределен. |
EnlistingTransaction(DbConnection, EnlistTransactionInterceptionContext) |
Не записывает данные в журнал, если не переопределен. |
Equals(Object) |
Это модуль форматирования журнала по умолчанию, используемый, когда некоторые из этих Action<T> форматов заданы в свойстве Log . Другой модуль форматирования можно использовать, создав класс, который наследует от этого класса и переопределяет некоторые или все методы для изменения поведения. |
Executed<TResult>(DbCommand, DbCommandInterceptionContext<TResult>) |
Вызывается каждый раз, когда команда завершает выполнение. Реализация этого метода по умолчанию фильтруется по параметру DbContextContext, если таковой есть, а затем вызывает LogResult<TResult>(DbCommand, DbCommandInterceptionContext<TResult>). Этот метод обычно переопределяется только для изменения поведения фильтрации контекста. |
Executing<TResult>(DbCommand, DbCommandInterceptionContext<TResult>) |
Вызывается каждый раз, когда команда должна быть выполнена. Реализация этого метода по умолчанию фильтруется по параметру DbContextContext, если таковой есть, а затем вызывает LogCommand<TResult>(DbCommand, DbCommandInterceptionContext<TResult>). Этот метод обычно переопределяется только для изменения поведения фильтрации контекста. |
GetHashCode() |
Это модуль форматирования журнала по умолчанию, используемый, когда некоторые из этих Action<T> форматов заданы в свойстве Log . Другой модуль форматирования можно использовать, создав класс, который наследует от этого класса и переопределяет некоторые или все методы для изменения поведения. |
GetStopwatch(DbCommandInterceptionContext) |
Секундомер, используемый для выполнения. Этот секундомер запускается в конце NonQueryExecuting(DbCommand, DbCommandInterceptionContext<Int32>)методов , ScalarExecuting(DbCommand, DbCommandInterceptionContext<Object>)и ReaderExecuting(DbCommand, DbCommandInterceptionContext<DbDataReader>) и останавливается в начале NonQueryExecuted(DbCommand, DbCommandInterceptionContext<Int32>)методов , ScalarExecuted(DbCommand, DbCommandInterceptionContext<Object>)и ReaderExecuted(DbCommand, DbCommandInterceptionContext<DbDataReader>) . Если эти методы переопределены и используется секундомер, переопределения должны либо вызывать базовый метод, либо запускать или останавливать секундомер. |
GetType() |
Это модуль форматирования журнала по умолчанию, используемый, когда некоторые из этих Action<T> форматов заданы в свойстве Log . Другой модуль форматирования можно использовать, создав класс, который наследует от этого класса и переопределяет некоторые или все методы для изменения поведения. |
IsolationLevelGetting(DbTransaction, DbTransactionInterceptionContext<IsolationLevel>) |
Не записывает данные в журнал, если не переопределен. |
IsolationLevelGot(DbTransaction, DbTransactionInterceptionContext<IsolationLevel>) |
Не записывает данные в журнал, если не переопределен. |
LogCommand<TResult>(DbCommand, DbCommandInterceptionContext<TResult>) |
Вызывается для регистрации команды, которая должна быть выполнена. Переопределите этот метод, чтобы изменить способ ведения журнала команды в System.Data.Entity.Infrastructure.Interception.DatabaseLogFormatter.WriteAction. |
LogParameter<TResult>(DbCommand, DbCommandInterceptionContext<TResult>, DbParameter) |
Вызывается методом LogCommand<TResult>(DbCommand, DbCommandInterceptionContext<TResult>) для ведения журнала каждого параметра. Этот метод может вызываться из переопределенной реализации LogCommand<TResult>(DbCommand, DbCommandInterceptionContext<TResult>) в параметры журнала и /или может быть переопределен, чтобы изменить способ ведения журнала параметров в System.Data.Entity.Infrastructure.Interception.DatabaseLogFormatter.WriteAction. |
LogResult<TResult>(DbCommand, DbCommandInterceptionContext<TResult>) |
Вызывается для регистрации результата выполнения команды. Переопределите этот метод, чтобы изменить способ ведения журнала результатов в System.Data.Entity.Infrastructure.Interception.DatabaseLogFormatter.WriteAction. |
NonQueryExecuted(DbCommand, DbCommandInterceptionContext<Int32>) |
Этот метод вызывается после вызова ExecuteNonQuery() или одного из его асинхронных аналогов. Реализация по умолчанию останавливает секундомер, возвращенный из GetStopwatch(DbCommandInterceptionContext) и вызывает .Executed<TResult>(DbCommand, DbCommandInterceptionContext<TResult>) |
NonQueryExecuting(DbCommand, DbCommandInterceptionContext<Int32>) |
Этот метод вызывается перед вызовом ExecuteNonQuery() или одним из его асинхронных аналогов. Реализация по умолчанию вызывает Executing<TResult>(DbCommand, DbCommandInterceptionContext<TResult>) и запускает секундомер, возвращаемый из GetStopwatch(DbCommandInterceptionContext). |
Opened(DbConnection, DbConnectionInterceptionContext) |
Вызывается после Open() вызова или его асинхронного аналога. Реализация этого метода по умолчанию фильтруется по параметру DbContextContext, если таковой есть, а затем регистрирует событие. |
Opening(DbConnection, DbConnectionInterceptionContext) |
Не записывает данные в журнал, если не переопределен. |
ReaderExecuted(DbCommand, DbCommandInterceptionContext<DbDataReader>) |
Этот метод вызывается после вызова ExecuteReader(CommandBehavior) или одного из его асинхронных аналогов. Реализация по умолчанию останавливает секундомер, возвращенный из GetStopwatch(DbCommandInterceptionContext) и вызывает .Executed<TResult>(DbCommand, DbCommandInterceptionContext<TResult>) |
ReaderExecuting(DbCommand, DbCommandInterceptionContext<DbDataReader>) |
Этот метод вызывается перед вызовом ExecuteReader(CommandBehavior) или одним из его асинхронных аналогов. Реализация по умолчанию вызывает Executing<TResult>(DbCommand, DbCommandInterceptionContext<TResult>) и запускает секундомер, возвращаемый из GetStopwatch(DbCommandInterceptionContext). |
RolledBack(DbTransaction, DbTransactionInterceptionContext) |
Этот метод вызывается после Rollback() вызова . Реализация этого метода по умолчанию фильтруется по параметру DbContextContext, если таковой есть, а затем регистрирует событие. |
RollingBack(DbTransaction, DbTransactionInterceptionContext) |
Не записывает данные в журнал, если не переопределен. |
ScalarExecuted(DbCommand, DbCommandInterceptionContext<Object>) |
Этот метод вызывается после вызова ExecuteScalar() или одного из его асинхронных аналогов. Реализация по умолчанию останавливает секундомер, возвращенный из GetStopwatch(DbCommandInterceptionContext) и вызывает .Executed<TResult>(DbCommand, DbCommandInterceptionContext<TResult>) |
ScalarExecuting(DbCommand, DbCommandInterceptionContext<Object>) |
Этот метод вызывается перед вызовом ExecuteScalar() или одним из его асинхронных аналогов. Реализация по умолчанию вызывает Executing<TResult>(DbCommand, DbCommandInterceptionContext<TResult>) и запускает секундомер, возвращаемый из GetStopwatch(DbCommandInterceptionContext). |
ServerVersionGetting(DbConnection, DbConnectionInterceptionContext<String>) |
Не записывает данные в журнал, если не переопределен. |
ServerVersionGot(DbConnection, DbConnectionInterceptionContext<String>) |
Не записывает данные в журнал, если не переопределен. |
StateGetting(DbConnection, DbConnectionInterceptionContext<ConnectionState>) |
Не записывает данные в журнал, если не переопределен. |
StateGot(DbConnection, DbConnectionInterceptionContext<ConnectionState>) |
Не записывает данные в журнал, если не переопределен. |
ToString() |
Это модуль форматирования журнала по умолчанию, используемый, когда некоторые из этих Action<T> форматов заданы в свойстве Log . Другой модуль форматирования можно использовать, создав класс, который наследует от этого класса и переопределяет некоторые или все методы для изменения поведения. |
Write(String) |
Записывает заданную строку в базовый делегат записи. |
Применяется к
Entity Framework