Для тих, хто просто намагається діагностувати одноразовий помилковий запит EF Core або тому подібне і не бажає змінювати свій код, є кілька варіантів:
Використовуйте SQL Profiler SQL Server Management Studio (SSMS)
Якщо у вас встановлена SQL Server Management Studio (SSMS), ви можете просто запустити SQL Profiler з меню Інструменти в 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). Я перевірив, і цього не ввімкнув для жодного зі своїх проектів, але з цим, можливо, варто поекспериментувати, якщо вищезазначене не працює для вас.