Untuk siapa pun yang hanya mencoba mendiagnosis kueri EF Core yang salah sasaran atau sejenisnya dan tidak ingin mengubah kodenya, ada beberapa opsi:
Gunakan SQL Server Management Studio (SSMS) SQL Profiler
Jika Anda telah menginstal SQL Server Management Studio (SSMS), Anda dapat menjalankan SQL Profiler dari menu Tools di SSMS:
Dan kemudian mulai jejak baru yang berjalan di SQL Profiler setelah terbuka.
Anda kemudian akan dapat melihat permintaan SQL yang masuk dari EF, biasanya format tersebut cukup baik dan mudah dibaca.
Periksa Output Window di Visual Studio
Dalam salinan VS2019 saya, menggunakan EF2.2 saya dapat mengubah jendela keluaran untuk menampilkan keluaran dari Server Web (pilih nama aplikasi dan server web Anda di kombo "Tampilkan keluaran dari" di bagian atas panel Keluaran) dan SQL keluar juga ditampilkan di sana. Saya telah memeriksa kode saya dan sejauh yang saya lihat saya belum melakukan apa pun untuk mengaktifkannya, jadi saya pikir itu harus melakukan ini secara default:
Jika Anda ingin melihat parameter yang dikirim ke server SQL dalam kueri, Anda dapat mengaktifkannya saat menyiapkan DBContext dengan EnableSensitiveDataLogging
metode, mis.
services.AddDbContext<FusionContext>(options => options
.UseSqlServer(connectionString))
.EnableSensitiveDataLogging()
@Tich - Lil3p menyebutkan di komentar bahwa mereka juga perlu menggunakan sakelar untuk mengaktifkan SQL Debugging di tab Debug pada halaman Properti proyek (yang "sqlDebugging": true
disetel di LaunchSettings.json). Saya telah memeriksa dan saya belum mengaktifkannya untuk salah satu proyek saya, tetapi itu mungkin layak untuk dicoba juga jika hal di atas tidak berhasil untuk Anda.