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

Comments (4)

  1. says:

    Kris Vandermotten zeigt auf seinem Blog wie die von Linq to SQL erzeugten SQL Befehle in dem "Debugger

  2. Vor einer Weile hatte ich hier einen Beitrag zu den LINQ to SQL Tutorials von Scott Guthrie (1) veröffentlicht.

  3. AlexanderKarl@gmx.net says:

    hallo Herr Walzenbach,

    heute habe ich eine Frage an Sie als Evangelist.

    re: Wie lautet die korrekte Syntax für einen Verbindungsserver zu Exchange.

    http://msdn2.microsoft.com/en-us/library/aa213275(sql.80).aspx

    dort steht im 2.codesnippert die

    ViewErstellung.

    in dieser Codierung erscheinen die

    :schemas:contact:sn  mal mit s und mal ohne s

    können Sie mir einen link nennen, der einen

    Verbindungsserver auf einen Posteingang in einem

    Exchange anlegt bzw. mittels view nutzt ?

    für Ihre Bemühungen schon heute

    herzlichen Dank.

    gez. a.karl