Может ли запрос EF быть пустым? - PullRequest
0 голосов
/ 21 января 2019

Я реализовал интерфейс IDbCommandInterceptor в моем проекте.Я хочу сделать запись в каждой функции (ReaderExecuted, NonQueryExecuted, ...).Вопрос в том, есть ли ситуация, когда команда DbCommand равна нулю?В некоторых примерах в сети людей, использующих команду? .CommandText, я хочу быть уверен, что этот код не будет "собачьим гвоздем".

public void ReaderExecuted(DbCommand command, DbCommandInterceptionContext<DbDataReader> interceptionContext)
        {
            Logger(command, interceptionContext);
        }

1 Ответ

0 голосов
/ 21 января 2019

Я не верю, по крайней мере, не нормально. Класс DbCommand содержит свои собственные (нестатические) методы выполнения, а DbConnection делает не , поэтому вам необходим экземпляр DbCommand для запуска (I) Обработчики DbCommandInterceptor нормально. Тем не менее, IDbCommandInterceptor - это просто интерфейс, и любой, кто имеет ссылку на перехватчик, может вручную вызвать любой из его открытых методов с нулевым аргументом. Это зависит от того, насколько хорошо вы ведете себя, когда люди потребляют ваш код.

...