Was ist eine sprachintegrierte Abfrage?

Language Integrated Query (LINQ) bietet die Möglichkeit, deklarative Abfragesyntax nahtlos in imperative Sprachen zu integrieren, hauptsächlich in C # und VB.NET. Die Entwicklung von LINQ löste die Probleme, die Entwickler bei der Ausführung von Abfragen in objektorientierten Umgebungen hatten. Es wurde im November 2007 als Teil von Microsoft® .NET Framework Version 3.5 und unter dem Visual Studio®-Codenamen "Orcas" eingeführt.

Vor der Erstellung der sprachintegrierten Abfrage hatten .NET-Sprachen keine systemeigene Möglichkeit, relationale Datenbanken oder XML-Dokumente abzufragen. Entwickler, die in diesen Sprachen schreiben, mussten SQL bzw. XQuery als Zeichenfolgen einbetten und die resultierenden Daten manuell .NET-Objekten zuordnen. Eingebettete Abfragezeichenfolgen und Zuordnungen konnten von .NET-Compilern nicht überprüft werden, sodass potenzielle Fehler zur Laufzeit erkannt werden konnten.

Ein weiteres Problem, mit dem Entwickler vor der sprachintegrierten Abfrage konfrontiert waren, bestand darin, dass .NET-Sprachen nur objektorientierte Syntax hatten, um Sammlungen von .NET-Objekten abzufragen. In der Regel durchläuft der Entwickler eine gesamte Quellensammlung und erstellt neue Ergebnissammlungen basierend auf Suchkriterien. Der Entwickler könnte die Daten auch während der Erstellung der Ergebnissammlungen transformieren. Dieser Ansatz war umständlich; Eine einfache Auswahlabfrage, die in C # oder VB geschrieben ist, würde mindestens fünf Codezeilen erfordern, wohingegen dieselbe Abfrage eine Codezeile in einer Abfragesprache erfordern würde.

Die Herausforderungen beim Abfragen in einer objektorientierten Umgebung gaben Microsoft den Anstoß, LINQ zu erstellen. LINQ bietet eine Abfragesyntax, die an SQL erinnert und in Übereinstimmung mit C # oder VB verwendet werden kann, einschließlich statischer Typprüfung. Bei der Abfrage von .NET-Auflistungen können Entwickler anstelle von verschachtelten Schleifen LINQ-Syntax verwenden, um Elemente auszuwählen und Daten zu transformieren. Dies führt unter anderem zu weniger Codezeilen im Vergleich zu einer rein objektorientierten Syntax.

Beim Zugriff auf externe Datenquellen benötigen LINQ und unterstützende Komponenten keine eingebetteten Abfragesprachen und Datenzuordnungen in einer .NET-Sprache. Zur Durchführung der Datenzuordnung ist LINQ von Komponenten abhängig, die als LINQ-Anbieter bezeichnet werden. LINQ-to-Objects ist der Aktienanbieter, mit dem LINQ auf .NET-Sammlungen zugreifen kann. Ebenso gibt es Anbieter für den Zugriff auf relationale Datenbanken und XML-Dokumente. Die meisten dieser Anbieter sind Komponenten von Drittanbietern, die nicht in .NET Framework enthalten sind. Unabhängig vom verwendeten Provider verwenden alle Abfragen dieselbe LINQ-Syntax.

Zwischen der sprachintegrierten Abfragesyntax und den Anbietern befindet sich eine Bibliothek von Abfrageoperatoren, die dem .NET Framework als Teil der LINQ-Funktionen hinzugefügt wurden. Diese Operatoren führen Aufgaben wie Filtern, Ordnen, Festlegen von Theorieoperationen und Aggregieren aus. Da diese Operatoren Teil von .NET Framework sind, können sie auch ohne LINQ verwendet werden, wenn der Entwickler dies wünscht.

ANDERE SPRACHEN

War dieser Artikel hilfreich? Danke für die Rückmeldung Danke für die Rückmeldung

Wie können wir helfen? Wie können wir helfen?