Почему IDbCommandTreeInterceptor пропускается во втором запросе?

Используя структуру сущностей, я реализовал мягкое удаление и ограничение уровня данных с помощью IDbCommandTreeInterceptor. При первом запросе, использующем контекст, перехватчик срабатывает. Но при повторной попытке (обновление браузера) перехватчик пропускается. Я проверил, кэшируются ли данные, изменив некоторые данные с помощью студии управления сервером SQL. Изменения отражаются, но перехватчик по-прежнему пропускается. Что может быть причиной того, что это произошло?


person John Staurt    schedule 09.10.2017    source источник
comment
Таким образом, перехватчик пропускается, вы имеете в виду, что целевой объект действительно удаляется, а не удаляется мягко?   -  person Evk    schedule 09.10.2017
comment
мягко удаленные объекты возвращаются после мягкого удаления   -  person John Staurt    schedule 09.10.2017
comment
Перехватчик также пропускается при отладке.   -  person John Staurt    schedule 09.10.2017


Ответы (1)


согласно комментариям источников это ожидается поведение

Деревья команд создаются как для запросов, так и для команд вставки/обновления/удаления. Однако деревья команд запроса кэшируются моделью, что означает, что создание дерева команд происходит только при первом выполнении запроса, и это уведомление будет происходить только в это время.

Как следствие, результат вашего перехватчика не может зависеть от данных.

person jbl    schedule 09.10.2017
comment
Понятно, но один бит, который все еще сбивает с толку, заключается в том, что перехватчик срабатывает (для старого запроса), если я запускаю новый запрос, а затем повторно запускаю старый запрос через EF. Но затем, если оба запроса уже были выполнены один раз, перехватчик снова пропускается для обоих взаимозаменяемо, пока не будет выполнен новый запрос. Затем Interceptor получает удар по новому запросу и обоим старым запросам. - person John Staurt; 09.10.2017
comment
@JohnStaurt действительно неожиданно. Изменили ли вы раздел конфигурации queryCache (см. blogs.msdn.microsoft.com/premier_developer/2017/03/23/ )? - person jbl; 09.10.2017