Wie sehe ich welche SQL Befehle eine Linq to SQL Abfrage erzeugt?

Mit Linq ist es sehr einfach komplexe Abfragen auf eine Liste von Objekten anzuwenden. Um einmal hinter die Kulissen zu schauen eignet sich die Property Log des DataContext die, wie in diesem Beispiel zu sehen, die SQL Query auf der Console ausgibt.

Dim db As New NWDataClassesDataContext

Dim result = From c In db.Customers _

             Where c.City.StartsWith("M") _

             Group c.City By key = c.City Into Group _

             Select key, Group.Count

 

db.Log = Console.Out

 

For Each row In result

    Console.WriteLine(row)

Next

db.Log = Console.Out erzeugt daraufhin die folgende Ausgabe:
Durch Linq to SQL erzeugte Query

Für C# gibt es außerdem einen "LINQ to SQL Debug Visualizer" der die erzeugte Query im Debugger anzeigen kann.

Happy Coding!

Daniel