2010-12-08 15 views
2

la question semble assez claire, mais je vais ajouter un casrequête SQL exacte exécutée par Entity Framework

using (var context = new MyEntities()) 
{ 
    if(context.mytable.Any(row => row.myfield == 2)) 
    { 
    // do something here 
    } 
} 

Je suis nouveau à Entity Framework. Je ne sais pas comment vérifier la requête sql exacte exécutée?

Répondre

0

Si vous vous connectez à SQL Server, vous pouvez utiliser SQL Profiler afin d'obtenir le SQL généré.

8

Comme l'état des réponses ci-dessus, vous pouvez utiliser SQL Profiler, LINQPad, EF Profiler, etc.

Un autre peu connu (certains pourraient dire paresseux) astuce consiste à utiliser ObjectQuery.ToTraceString() méthode d'extension.

Jetez simplement votre requête en tant que ObjectQuery<T>.

var query = context.mytable.Any(row => row.myfield == 2)); 
var trace = ((ObjectQuery<MyTable>)query).ToTraceString(); 

Il crachera le SQL qui doit être exécuté.

Très utile pour la journalisation de dernière minute.