Zum Inhalt

LINQPad – ein praktischer Helfer

Wenn man sich mit LINQ beschäftigt steht man schnell vor dem Problem, das man irgendwie nicht ganz das gewünschte Resultat erhält. Immer wieder für jede kleine Änderung den Zyklus „anpassen, kompilieren und debuggen“ zu durchlaufen wird sehr schnell zur mühsamen Fleissarbeit. Das muss aber nicht sein. Mit LINQPad gibt es einen kleinen Helfer, der einem auf eine sehr einfach Art bei der Überprüfung seiner LINQ-Abfragen unterstützt.

Download und Installation

Die rund 2.5 MB grosse Zip-Datei kann von https://www.linqpad.net heruntergeladen werden. Die Installation beschränkt sich auf das entpacken der Zip-Datei und benötigt keine weiteren manuellen Eingriffe.

Die Beispiele zur Einführung

Bevor man mit der Arbeit beginnt sollte man einen Blick auf die mitgelieferten Beispiele werfen. Der entsprechende Tab findet sich links unten neben den eigenen Abfragen. Neben einer kurzen Einführung in LINQPad gibt es zahlreiche Beispiele aus den Buch C# 4.0 in a Nutshell. Wem dies nicht genügt kann weitere Beispiele über den entsprechenden Link herunter laden.

Abfragen auf Listen

Die in meinem Blog Post zu „Mengenoperationen mit LINQ“ genutzten Beispiele lassen sich auch mit LINQPad ausführen:

"LINQPad: Except"

Da alle nötigen Objekte vor der Abfrage deklariert werden, braucht man für diese Beispiele keine zusätzlichen *.dll oder eine DB-Verbindung – genauso wie man es im Visual Studio auch nicht benötigt. Einzig ein resultExcept.Dump(); sollte man einfügen damit man das Resultat zu sehen bekommt.

Abfragen einer DB

Zum Anhängen einer Datenbank genügt ein Klick auf „Add Connection“. Mit einem einfachen Dialog kann man den gewünschten Server sowie eine oder mehrere Datenbanken auswählen und als Datenquelle hinzufügen:

"LINQPad: DBConnect"

Um die Datenbank zu nutzen genügt es den entsprechenden Eintrag in der Auswahlliste zu wählen. Man kann nun seine Abfragen in LINQ formulieren und auf die DB abfeuern. Mir gefiel besonders die Möglichkeit gleich das erzeugte SQL anschauen zu können. Mit 2 Klicks kann man dies für weitere Analysen ins SQL Management Studio übernehmen.

"LINQPad: SQL"

Eigener ObjectContext nutzen

Für mich war die Möglichkeit den ObjectContext aus einem bestehenden Projekt zu nutzen sehr hilfreich. Beim Assistenten für eine neue Verbindung muss unter „typed data context“ Entity Framework gewählt werden. Was es nun noch braucht ist die Auswahl der richtigen *.dll die das ADO.Net Entity Data Model (*.edmx) enthält:

"LINQPad: EF ObjectContext"

Die Abfrage läuft dann genau gleich wie wenn eine Datenbank das Ziel ist. Allerdings sind all die manuell vorgenommenen Änderungen (wie in meinem Beispiel das Umbenennen von Products in EFProducts) auch verfügbar:

"LINQPad: EF ObjectContext Query"

OData Services abfragen

Wer gerne einmal mit OData (Open Data Protocol) und LINQ arbeiten möchte, sollte sich den „WCF DataService (OData)“ anschauen. Auf der Webseite von LINQPad gibt es einige Beispiele wie man auf den OData-Service von Stackoverflow zugreifen kann. Da OData die Aufrufe in eine URL umwandelt, liefert der SQL-Reiter im Resultate Bereich ein ungewohntes Bild:

"LINQPad: OData"

Upgrade?

Nutzt man die Gratisversion wird man beim Tippen der Befehle sehr schnell die Autocompletition-Funktionalität vermissen – jedenfalls ging es mir so. Für 39$ kann man diese und weitere Optionen allerdings nachrüsten. Für mich ist dieses Plus an Funktionalität den Aufpreis wert. Wer darauf verzichten kann bleibt am besten bei der Gratisversion.

Fazit

LINQPad ist ein erstaunlich hilfreiches Tool. Die vielfältigen Einsatzmöglichkeiten und auch die mitgelieferten Beispiele machen LINQPad für mich zu einem Werkzeug, das jedem der mit LINQ arbeitet bekannt sein sollte.