Dla każdego, kto próbuje zdiagnozować jednorazową nieprawidłową kwerendę EF Core lub podobną i nie chce zmieniać swojego kodu, istnieje kilka opcji:
Użyj SQL Server Management Studio (SSMS) SQL Profiler
Jeśli masz zainstalowany program SQL Server Management Studio (SSMS), możesz po prostu uruchomić program SQL Profiler z menu Narzędzia w SSMS:
Po otwarciu uruchom nowe śledzenie w programie SQL Profiler.
Będziesz wtedy mógł zobaczyć przychodzące żądanie SQL z EF, są one ogólnie dość dobrze sformułowane i łatwe do odczytania.
Sprawdź okno danych wyjściowych w programie Visual Studio
W mojej kopii VS2019 przy użyciu EF2.2 mogę zmienić okno danych wyjściowych, aby wyświetlić dane wyjściowe z serwera internetowego (wybierz nazwę aplikacji i serwera internetowego w menu „Pokaż dane wyjściowe z” w górnej części okienka danych wyjściowych) i wychodzący SQL jest tam również pokazany. Sprawdziłem mój kod i, o ile widzę, nie zrobiłem nic, aby to włączyć, więc myślę, że domyślnie musi to robić:
Jeśli chcesz widzieć parametry wysyłane do serwera SQL w zapytaniach możesz to włączyć podczas konfigurowania DBContext EnableSensitiveDataLogging
metodą np.
services.AddDbContext<FusionContext>(options => options
.UseSqlServer(connectionString))
.EnableSensitiveDataLogging()
@Tich - Lil3p wspomina w komentarzach, że musieli również użyć przełącznika, aby włączyć debugowanie SQL na karcie Debugowanie na stronie Właściwości projektu (która jest "sqlDebugging": true
ustawiana w LaunchSettings.json). Sprawdziłem i nie włączyłem tego w żadnym z moich projektów, ale może warto z tym eksperymentować, jeśli powyższe nie działa.