6
votes

Cadre entité généré SQL

est-il possible de générer le SQL généré par le cadre d'entité au niveau mondial et non sur une requête par interrogation? Je cherche simplement le jeter quelque part quelque part afin que je puisse l'examiner.

Si cela n'est pas possible, comment afficher le SQL étant généré pour les mises à jour et les insertions?


0 commentaires

4 Réponses :


7
votes

Le profileur SQL Server vous permettra de visualiser les commandes qui sont exécutées sur le serveur pendant que l'application est en cours d'exécution.

Un autre outil gratuit pour profilage SQL Server 2005 Express ici .

Mise à jour

Une autre méthode pour voir ce qui est généré par LINQ est la propriété journal du DataContext.

Il s'agit d'un textwriter qui devrait être facile à enregistrer le contenu dans un fichier ou de rediriger vers la console.out.

Info MSDN pour la propriété de journal


3 commentaires

Idéalement, je voudrais produire dans un fichier ou afficher le SQL dans Visual Studio et éviter d'avoir à exécuter un profileur ou d'utiliser un outil supplémentaire.


LINQ à SQL et cadre d'entité ne sont pas les mêmes. L'entité cadre Contexte n'a pas cette option.


Nice, je ne savais jamais que sur L2, juste une autre raison pour laquelle je suis content d'aller avec ça sur ef :)



3
votes

vous voulez LINQPAD , voici Certaines vidéos qui vous montrent comment l'utiliser


3 commentaires

LINQPAD est idéal pour sélectionner, mais j'ai besoin de cela pour toutes les transactions (c'est-à-dire Select, Insérer, Mettre à jour, Supprimer) - Matthew 5 minutes il y a


Linqpad fait tout cela aussi, viens de vérifier moi-même


Merci, je vois ça maintenant. J'espérais une solution différente mais cela fonctionnera.



1
votes

Je cherchais une réponse à cela aussi. Il s'avère qu'il y a une très belle façon de voir le SQL généré par EF, si cela ne vous dérange pas de tremper dans le monde quelque peu fructueux de réflexion.

Une affiche très débrouillard sur les forums MSDN a écrit un ensemble de méthodes d'extension qui vous permettent de jeter la sortie SQL d'un objet objetContext (c.-à-d. Les choses qui seront exécutées lorsque vous appelez SAVECHANGES ( ) ).

Vous pouvez trouver le lien Ici - cherche le message de g_yordanov contenant la classe Customextensions.

J'ai testé cela au cours des derniers temps et il semble faire le truc assez bien. Le seul attrape est que je devais faire la solution suggérée par David Cater dans ce thread - Modification du dictionnaire à un Dictionnaire .


0 commentaires

1
votes

Comme cela a été demandé à l'origine, vous pouvez également utiliser EFProf pour profiler votre application de cadre d'entité, ce qui vous permet de Voir le SQL généré parmi de nombreuses autres métriques.


2 commentaires

EFPROF est un logiciel commercial.


Les développeurs n'utilisent pas de logiciels commerciaux maintenant?