Pour tous ceux qui essaient simplement de diagnostiquer une requête EF Core ayant un raté unique ou autre et ne souhaitant pas modifier leur code, il existe plusieurs options:
Utiliser le profileur SQL SQL Server Management Studio (SSMS)
Si vous avez installé SQL Server Management Studio (SSMS), vous pouvez simplement lancer le SQL Profiler à partir du menu Outils de SSMS:
Et puis démarrez une nouvelle trace exécutée dans SQL Profiler une fois qu'elle s'ouvre.
Vous pourrez alors voir la requête SQL entrante d'EF, elles sont généralement assez bien formées et faciles à lire.
Vérifiez la fenêtre de sortie dans Visual Studio
Dans ma copie de VS2019, en utilisant EF2.2, je peux modifier la fenêtre de sortie pour afficher la sortie du serveur Web (sélectionnez le nom de votre application et de votre serveur Web dans la liste déroulante "Afficher la sortie de" en haut du volet Sortie) et le SQL sortant y est également montré. J'ai vérifié mon code et pour autant que je sache, je n'ai rien fait pour l'activer, donc je pense qu'il doit le faire par défaut:
Si vous souhaitez voir les paramètres envoyés au serveur SQL dans les requêtes, vous pouvez l'activer lors de la configuration du DBContext avec la EnableSensitiveDataLogging
méthode, par exemple
services.AddDbContext<FusionContext>(options => options
.UseSqlServer(connectionString))
.EnableSensitiveDataLogging()
@Tich - Lil3p mentionne dans les commentaires qu'ils avaient également besoin d'utiliser un commutateur pour activer le débogage SQL dans l'onglet Débogage de la page Propriétés du projet (qui définit "sqlDebugging": true
dans LaunchSettings.json). J'ai vérifié et je ne l'ai activé pour aucun de mes projets, mais cela vaut peut-être la peine d'être expérimenté si ce qui précède ne fonctionne pas pour vous.