Para cualquiera que esté tratando de diagnosticar una consulta EF Core fallida única o similar y no quiera cambiar su código, hay un par de opciones:
Usar SQL Server Management Studio (SSMS) SQL Profiler
Si tiene instalado SQL Server Management Studio (SSMS), puede iniciar SQL Profiler desde el menú Herramientas en SSMS:
Y luego inicie una nueva traza ejecutándose en SQL Profiler una vez que se abra.
Luego podrá ver la solicitud SQL entrante de EF, generalmente están bastante bien formados y son fáciles de leer.
Compruebe la ventana de salida en Visual Studio
En mi copia de VS2019, usando EF2.2 puedo cambiar la ventana de salida para mostrar la salida del servidor web (seleccione el nombre de su aplicación y servidor web en el combo "Mostrar salida de" en la parte superior del panel Salida) y el SQL saliente también se muestra allí. Revisé mi código y, por lo que puedo ver, no he hecho nada para habilitarlo, así que creo que debe hacer esto de forma predeterminada:
Si desea ver los parámetros enviados al servidor SQL en las consultas, puede activarlos al configurar DBContext con el EnableSensitiveDataLogging
método, por ejemplo
services.AddDbContext<FusionContext>(options => options
.UseSqlServer(connectionString))
.EnableSensitiveDataLogging()
@Tich - Lil3p menciona en los comentarios que también necesitaban usar un interruptor para activar la depuración de SQL en la pestaña Depurar de la página de Propiedades del proyecto (que se establece "sqlDebugging": true
en LaunchSettings.json). Lo verifiqué y no lo tengo encendido para ninguno de mis proyectos, pero también puede valer la pena experimentar con eso si lo anterior no funciona para usted.