Для тех, кто просто пытается диагностировать одноразовый пропуск зажигания в запросе EF Core или что-то подобное и не хочет менять свой код, есть несколько вариантов:
Использование SQL Server Management Studio (SSMS) SQL Profiler
Если у вас установлена SQL Server Management Studio (SSMS), вы можете просто запустить SQL Profiler из меню Tools в SSMS:
А затем запустите новую трассировку в SQL Profiler, как только она откроется.
После этого вы сможете увидеть входящий SQL-запрос от EF, они обычно довольно хорошо сформированы и легко читаются.
Проверьте окно вывода в Visual Studio
В моей копии VS2019 с помощью EF2.2 я могу изменить окно вывода, чтобы отображать вывод с веб-сервера (выберите имя вашего приложения и веб-сервера в комбинированном списке «Показать вывод из» в верхней части панели вывода) и исходящий SQL также отображается там. Я проверил свой код и, насколько я понимаю, ничего не сделал для его включения, поэтому я думаю, что он должен делать это по умолчанию:
Если вы хотите видеть параметры, отправленные на SQL-сервер в запросах, вы можете включить это при настройке DBContext с помощью EnableSensitiveDataLogging
метода, например
services.AddDbContext<FusionContext>(options => options
.UseSqlServer(connectionString))
.EnableSensitiveDataLogging()
@Tich - Lil3p упоминает в комментариях, что им также необходимо использовать переключатель для включения отладки SQL на вкладке «Отладка» на странице свойств проекта (которая устанавливается "sqlDebugging": true
в LaunchSettings.json). Я проверил и не включил это ни для одного из моих проектов, но, возможно, с этим тоже стоит поэкспериментировать, если вышеперечисленное не работает для вас.