Débogage Entity Framework, SQL
J'éprouve un étrange modèle de temps de réponse lors de l'utilisation d'Entity Framework pour SQL communication.
C'est a partir de ma page d'accueil:
C'est à partir de mon serveur local:
C'est l'augmentation du temps de réponse je suis inquiet.
J'ai réduit le problème à une seule ligne de code
Nop.Données > EfRepository.cs > public void Insert(T entité) > _entities.Ajouter(personne morale);
Oui je le sais très spécifique pour la NopCommerce, mais le point est vraiment que je suis à la recherche de l'aide sur la façon de débogage.
Sont là certains des événements que je peux attraper que l'affichage de la SQL exécutée?
Ou ce que d'autres choses que je peux faire pour en savoir plus ce qui se passe réellement dans le Cadre de l'Entité en ce que la commande ci-dessus.
OriginalL'auteur Anders | 2011-10-26
Vous devez vous connecter pour publier un commentaire.
Pour le débogage EF requêtes, la chose la plus simple est de lancer la requête pour ObjectQuery et l'utilisation ToTraceString:
Cela permettra de montrer SQL sous-jacente de la requête, et vous pouvez exécuter les requêtes manuellement pour déboguer pourquoi ils sont lents. Voici le lien MSDN:
http://msdn.microsoft.com/en-us/library/system.data.objects.objectquery.totracestring.aspx
Si vous essayez d'avoir le SQL qui est exécuté lorsque vous appelez SaveChanges() sur votre contexte, il n'est pas facile. Vous pouvez prendre un coup d'oeil à EFTracingProvider:
http://blogs.msdn.com/b/jkowalski/archive/2009/06/11/tracing-and-caching-in-entity-framework-available-on-msdn-code-gallery.aspx
Ou, en supposant que vous utilisez SQL Server, vous pouvez aller directement sur le générateur de profils SQL et de capturer le T-SQL (c'est ma méthode préférée).
J'ai découvert qu'une partie du problème réside dans le code en matière de moulage d'objets à des classes spécifiques. Donc, le problème n'a probablement pas été SQL liées
OriginalL'auteur JohnD
Dans EF6, vous pouvez également le faire dans le constructeur de votre dbcontext
Exemple
Cela va se connecter à la console à chaque requête SQL généré par EF. Voir cet article pour plus d'informations http://blog.oneunicorn.com/2013/05/08/ef6-sql-logging-part-1-simple-logging/
OriginalL'auteur Richie