Verknüpfungsvorgänge

Aktualisiert: November 2007

Eine Verknüpfung zweier Datenquellen ist die Zuordnung von Objekten einer Datenquelle zu Objekten, die ein gemeinsames Attribut in einer anderen Datenquelle haben.

Das Verknüpfen ist ein wichtiger Vorgang beim Abfragen von Datenquellen, deren Verbindung zueinander nicht direkt nachvollziehbar ist. In der objektorientierten Programmierung wäre dies beispielsweise ein Zusammenhang zwischen Objekten, der nicht erstellt wurde, wie zum Beispiel die Abwärtsrichtung einer unidirektionalen Beziehung. Ein Beispiel einer unidirektionalen Beziehung wäre eine Customer-Klasse (Kunde), die eine Eigenschaft des Typs City (Stadt) besitzt, während die City-Klasse über keine Eigenschaft verfügt, die eine Auflistung von Customer-Objekten darstellt. Wenn Sie eine Liste von City-Objekten haben und alle Kunden in jeder Stadt finden möchten, könnten Sie dazu einen Verknüpfungsvorgang verwenden.

Die im LINQ-Framework bereitgestellten Verknüpfungsmethoden sind Join und GroupJoin. Diese Methoden führen Gleichheitsverknüpfungen bzw. Verknüpfungen aus, bei denen zwei Datenquellen auf Grundlage der Gleichheit ihrer Schlüssel übereinstimmen. (Im Vergleich dazu unterstützt Transact-SQL andere Verknüpfungsoperatoren als den Gleichheitsoperator, z. B. den 'Weniger als'-Operator.) In der Terminologie für relationale Datenbanken implementiert Join eine innere Verknüpfung, d. h. eine Verknüpfung, in der nur jene Objekte, die eine Übereinstimmung in einem anderen Dataset aufweisen, zurückgegeben werden. Die GroupJoin-Methode hat keine direkte Entsprechung in der Terminologie für relationale Datenbanken, aber sie implementiert eine Obermenge von inneren Verknüpfungen 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, selbst wenn es keine zugeordneten Elemente in der anderen Datenquelle gibt.

Die folgende Abbildung zeigt eine grundlegende Übersicht zweier Mengen und der Elemente innerhalb dieser Mengen, die entweder in einer inneren Verknüpfung oder einer linken äußeren Verknüpfung inbegriffen sind.

Zwei überlappende Kreise innen/außen

Methoden

Methodenname

Beschreibung

C#-Abfrageausdruckssyntax

Visual Basic-Abfrageausdruckssyntax

Weitere Informationen

Join

Verknüpft zwei Sequenzen auf Grundlage von Schlüsselauswahlfunktionen und extrahiert Paare von Werten.

join … in … on … equals …

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

- oder -

Join … [As …]In … On …

Enumerable.Join

Queryable.Join

GroupJoin

Verknüpft zwei Sequenzen auf Grundlage von Schlüsselauswahlfunktionen und gruppiert die resultierenden Entsprechungen für jedes Element.

join … in … on … equals … into …

Group Join … In … On …

Enumerable.GroupJoin

Queryable.GroupJoin

Weitere Informationen zum Ausführen von Verknüpfungsvorgängen

Siehe auch

Aufgaben

Gewusst wie: Formulieren von Verknüpfungen und produktübergreifenden Abfragen (LINQ to SQL)

Konzepte

Übersicht über Standardabfrageoperatoren

Anonyme Typen

Verknüpfungstypen

Referenz

System.Linq

Anonyme Typen (C#-Programmierhandbuch)