Share via


Verknüpfungsvorgänge

Eine Verknüpfung zweier Datenquellen entspricht der Zuordnung von Objekten einer Datenquelle zu den Objekten einer anderen Datenquelle, die ein Attribut gemeinsam haben.

Die Verknüpfung stellt für Abfragen einen wichtigen Vorgang dar, die auf Datenquellen ausgerichtet sind, deren Beziehungen zueinander nicht direkt verfolgt werden können. Bei der objektorientierten Programmierung könnte dies eine nicht modellierte Korrelation zwischen Objekten bedeuten, z. B. die entgegengesetzte Richtung einer unidirektionalen Beziehung. Ein Beispiel einer unidirektionalen Beziehung ist die Klasse "Kunde" mit der Eigenschaft vom Typ "Ort", während die Klasse "Ort" keine Eigenschaft besitzt, die einer Auflistung von "Kunde"-Objekten entspricht. Wenn Sie eine Liste von "Ort"-Objekten besitzen und alle Kunden in den einzelnen Orten finden möchten, könnten Sie eine Join-Operation verwenden, um diese zu finden.

Die im LINQ-Framework bereitgestellten Join-Methoden sind Join``4 und GroupJoin``4. Diese Methoden führen Gleichheitsverknüpfungen oder Verknüpfungen durch, bei denen zwei Datenquellen auf Basis der Gleichheit ihrer Schlüssel verglichen werden. (Zum Vergleich: Transact-SQL unterstützt auch andere Join-Operatoren als "ist gleich", z. B. den Operator "kleiner als".) Für relationale Datenbanken bedeutet dies, dass Join``4 eine innere Verknüpfung implementiert, d. h. eine Art von Verknüpfung, bei der nur die Objekte zurückgegeben werden, die über eine Entsprechung im anderen Datensatz verfügen. Die Methode GroupJoin``4 besitzt für relationale Datenbanken kein direktes Pendant, aber sie implementiert ein Superset von inneren und linken äußeren Verknüpfungen. Eine linke äußere Verknüpfung ist eine Verknüpfung, die jedes Element der ersten (linken) Datenquelle zurückgibt, auch wenn keine entsprechenden Elemente in der anderen Datenquelle verfügbar sind.

Die folgende Abbildung zeigt eine Konzeptansicht zweier Sätze sowie der Elemente innerhalb dieser Sätze, die entweder in eine innere oder linke äußere Verknüpfung einbezogen sind.

Zwei überlappende Kreise innen/außen

Methoden

Methodenname

Beschreibung

C#-Abfrageausdruckssyntax

Visual Basic-Abfrageausdruckssyntax

Weitere Informationen

Join

Verknüpft zwei Sequenzen auf Basis von Schlüsselauswahlfunktionen und extrahiert Wertepaare.

join … in … on … equals …

From x In …, y In … Where x.a = y.a

- oder -

Join … [As …]In … On …

Enumerable.Join``4

Queryable.Join``4

GroupJoin

Verknüpft zwei Sequenzen auf Basis von Schlüsselauswahlfunktionen und gruppiert die sich ergebenden Übereinstimmungen für die einzelnen Elemente.

join … in … on … equals … into …

Group Join … In … On …

Enumerable.GroupJoin``4

Queryable.GroupJoin``4

Siehe auch

Aufgaben

Formulieren von Joins und produktübergreifenden Abfragen

Gewusst wie: Verknüpfen mithilfe eines zusammengesetzten Schlüssels (C#-Programmierhandbuch)

Gewusst wie: Verknüpfen des Inhalts unterschiedlicher Dateien (LINQ)

Gewusst wie: Sortieren der Ergebnisse einer Join-Klausel (C#-Programmierhandbuch)

Gewusst wie: Ausführen von benutzerdefinierten Verknüpfungsoperationen (C#-Programmierhandbuch)

Gewusst wie: Ausführen von Gruppenverknüpfungen (C#-Programmierhandbuch)

Gewusst wie: Ausführen innerer Verknüpfungen (C#-Programmierhandbuch)

Gewusst wie: Ausführen linker äußerer Verknüpfungen (C#-Programmierhandbuch)

Gewusst wie: Füllen von Objektauflistungen aus mehreren Quellen (LINQ)

Referenz

System.Linq

Anonyme Typen (C#-Programmierhandbuch)

join-Klausel (C#-Referenz)

Join-Klausel (Visual Basic)

Konzepte

Übersicht über Standardabfrageoperatoren

Anonyme Typen (Visual Basic)