J'essaie juste d'obtenir le SQL généré par une requête linq.
Avec Linq2Sql
dc.GetCommand(query).CommandText
voir http://msdn.Microsoft.com/en-us/library/system.data.linq.datacontext.getcommand.aspx pour plus d'informations.
Mais j'utilise habituellement LinqPad
Il y a 3 façons de faire ça.
1.Vous pouvez utiliser LINQPad.It's Free http://www.linqpad.net/
2.Vous pouvez utiliser SQL Server Profiler dans le serveur SQL (Outils -> SQL Server Profiler)
3.Vous pouvez utiliser le débogueur Visual Studio pour Generate T-Sql (avec n’importe quelle version de Visual Studio).
J'ai écrit un article de blog à propos de cette vérification Comment convertir une requête d'entité Linq en T-SQL?
Utilisez SQL Profiler
si vous utilisez SQL Server comme base de données.
Ceci est apparu sur Google, c'est un tutoriel en 8 parties. Je pense que cela va vous occuper pendant quelques heures, cela me semble assez détaillé.
1: http://weblogs.asp.net/scottgu/archive/2007/05/19/using-linq-to-sql-part-1.aspx
3: http://weblogs.asp.net/scottgu/archive/2007/06/29/linq-to-sql-part-3-querying-our-database.aspx
4: http://weblogs.asp.net/scottgu/archive/2007/07/11/linq-to-sql-part-4-updating-our-database.aspx
Bonne chance.
Autrement
Extrait de l'article MSDN Comment: afficher du SQL généré (LINQ to SQL)
Définissez le DataContext.Log
Property sur Console.Out
et vous le verrez dans la console.
Le moyen le plus simple que je puisse suggérer est d’utiliser Database
Log
. Mettez Log
après l’initialisation DataContext
et vous pourrez suivre tout ce que fait EF dans la fenêtre de Visual Studio output
.
DataContext db = new DataContext();
db.Database.Log = generatedSQL =>
{
Debug.WriteLine(generatedSQL);
};
Vous pouvez utiliserOutils de diagnosticdans Visual Studio pour afficher la requête générée.
Pour l'activer, allez en haut à droite, vous pouvez voir recherche rapide et saisir des outils de diagnostic.
Dans les résultats, cliquez sur l'option appropriée et voir ci-dessous la requête générée.