🏠 » Lexikon » L » LINQ

LINQ

LINQ vereinfacht die Bereitstellung eines konsistenten Modells zum Arbeiten mit Daten in verschiedenen Arten von Datenquellen und Formaten.

LINQ-Abfragen arbeiten grundsätzlich mit Objekten. Die Kodierungsmuster sind dieselben wie bei SQL-Abfragen. Die Besonderheit von LINQ besteht in der Möglichkeit neben relationalen Datenbanken auch textbasierte Dateien abzufragen.

LINQ wurde von Erik Meijer entwickelt und erschien erstmals mit Visual Studio 2008.

Aufbau und Funktionsweise von LINQ

Eine LINQ-Abfrageoperation besteht aus den folgenden drei Schritten:

  1. Schritt: Datenquelle abrufen
  2. Schritt: Abfrage erstellen
  3. Schritt: Ausführung der Abfrage

Schritt 1: Datenquelle abrufen

Unterstützt die Datenquelle die generische IEnumerable T-Schnittstelle, kann sie direkt abgerufen werden. Ist dies nicht der Fall, müssen die Quelldaten zunächst in den Arbeitsspeicher geladen werden.

Schritt 2: Abfrage erstellen

Anschließend wird die Abfrage erstellt. Diese kann neben den reinen Abfragekriterien auch Informationen zur Sortierung, Strukturierung und Gruppierung enthalten.

Schritt 3: Ausführung der Abfrage

Abschließend muss die Abfrage ausgeführt werden. In Schritt 2 wurde sie lediglich in einer Variablen gespeichert. Normalerweise erfolgt eine verzögerte Ausführung, die immer dann eintritt, wenn die Abfragevariable eine foreach-Anweisung durchläuft.

Eine unmittelbare Ausführung kann jedoch auch erzwungen werden.

LINQ Beispiel

Ein einfaches LINQ-Beispiel kann folgendermaßen aufgebaut sein:

class LINQ
{ 
	static void Main()
	{
		// Die drei Schritte einer LINQ-Abfrageoperation:
		// 1. Datenquelle abrufen
		int[] numbers = new int[7] { 0, 1, 2, 3, 4, 5, 6 };

		// 2. Abfrage erstellen
		// numQuery ist ein IEnumerable
		var numQuery =
		from num in numbers
		where (num % 2) == 0
		select num;

		// 3. Abfrage ausführen
		foreach (int num in numQuery)
		{
			Console.Write("{0,1} ", num);
		}
	}
}

Dieses einfache LINQ-Beispiel zeigt die drei Schritte der LINQ-Abfrageoperation. Als Datenquelle dient ein Array aus Zahlen. Arrays sind IEnumerable. Die Ausführung der Abfragevariablen erfolgt erst am Ende in der foreach-Anweisung.

Vorteile und Nachteile von LINQ

Ein großer Vorteil von LINQ ist die Standardisierung. Mit LINQ können nicht nur die Tabellen in relationalen Datenbanken abgefragt werden, sondern auch andere Datenquellen, wie zum Beispiel XML-Dateien und Textdateien. Ebenfalls von Vorteil ist die Tatsache, dass LINQ mit dieser standardisierten Methode auch von .NET-kompatiblen Sprachen wie C# und VB.NET aus operieren kann.

Als Nachteil kann die Pflicht gesehen werden, dass Daten aus Datenquellen ohne generische IEnumerable T-Schnittstelle zunächst in den Arbeitsspeicher geladen werden müssen. Je nach Menge der Daten und Größe des Arbeitsspeichers kann dies zu Verzögerungen oder Engpässen führen.

Einsatzgebiete von LINQ in der Praxis

Besonders die Einsatzgebiete innerhalb eines .Net-Frameworks profitieren von LINQ als Abfragesprache. Microsoft selbst bietet eine Bibliothek an, mit der LINQ-Abfragen dynamisch verarbeitet werden können (Dynamic LINQ).

Dadurch kann eine WHERE-Klausel als String definiert und mitgegeben werden. Die Abfragen laufen performant und stabil. Um Dynamic LINQ nutzen zu können, muss dieser Mechanismus allerdings explizit implementiert werden.

LINQ - Definition & Erklärung - Zusammenfassung

Im Zusammenhang mit dem Lexikoneintrag LINQ sollte man sich folgende Punkte merken:

  • LINQ vereinfacht die Bereitstellung eines konsistenten Modells zum Arbeiten mit Daten in verschiedenen Arten von Datenquellen und Formaten.
  • Die Besonderheit von LINQ besteht in der Möglichkeit neben relationalen Datenbanken auch textbasierte Dateien abzufragen.
  • LINQ wurde von Erik Meijer entwickelt und erschien erstmals mit Visual Studio 2008.