2016-01-21 4 views
7

üretir SQL görünce, ne yapmam ben ToList() açıklama ve olmasıdır Bu LINQ ifadesinden sonra komut üzerinde bir kesme noktası koyup daha sonra onu okuyabilir ve SQL'i okuyabilirim.Ben SQL <code>LINQ</code> tarafından oluşturuluyor görmek istiyorum zaman örnek</p> <pre><code>var query = (from a in this.Context.Apples select a.Name).ToList(); </code></pre> <p>için SQL ifadesine bir LINQ varsa LINQ

Soruma: Bu, oluşturulan SQL'i almanın doğru bir yolu mu? Ayrıca, SQL Server Profiler kullanmak iz ekleyebilir ve bunların sunucu tarafından yürütülmektedir olarak üretilen sorgularını görebilirsiniz

public class MyContext : DbContext{ 

    MyContext(){ 
     Database.Log = Console.WriteLine; 
     //or like this 
     //Database.Log = message => Trace.TraceInformation(message); 
    } 
} 
+1

. Oluşturulan SQL'i göstermek için bir "SQL" sekmesi vardır. –

cevap

3

Evet, bu doğru bir yoldur, ama tabii ki, başkalarını vardır:

var context = new DataClasses1DataContext(); 

var sb = new StringWriter(); 
context.Log = sb; 

var query = (from a in context.Persons select a.Name); 

string s = query.ToString(); 
string command = context.GetCommand(query).CommandText; 

//The log requires the query to actually hit the database 
query.ToList(); 
string log = sb.ToString(); 

Ve ayrıca LINQPad: Ben LINQPad kullanmayı tercih

enter image description here

5

Ayrıca Senin bağlamın Günlüğü özelliğini ayarlayabilirsiniz.

1

:

İlgili konular