Free Trial

Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.


  • Create BookmarkCreate Bookmark
  • Create Note or TagCreate Note or Tag
  • DownloadDownload
  • PrintPrint
Share this Page URL
Help

Join

Der Join-Operator verbindet die Elemente zweier Sequenzen in der Manier eines INNER JOIN, d. h. es werden nur solche Elemente zurückgeliefert, welche in beiden Sequenzen eine jeweilige Entsprechung haben. Dafür muss festgelegt werden, welche Eigenschaften über die gleichen Werte verfügen müssen, damit eine Zuordnung stattfindet.

Wichtig

Diese Gleichheit wird nicht wie bei Vergleichen üblich mit = bzw. == notiert. Vielmehr kommt das equals-Schlüsselwort zum Einsatz. Damit sind keine Joins möglich, die auf anderen booleschen Ausdrücke basieren – keine große Einschränkung, da diese in der Praxis recht selten vorkommen.

C#

Das Beispiel zeigt, wie Kunden mit ihrem Status »verbunden« werden. Die Verbindung ist über die Eigenschaften Status_ID (Kunden) und ID (StatusMenge) definiert. Das Endergebnis der Abfrage ist eine Liste aus anonymen Typen, die zum Schluss durchlaufen und ausgegeben werden.

// Objektkontext erstellen
TonisTortenTraumEntities TonisTortenTraumContext = new TonisTortenTraumEntities();

// Status für jeden Kunden ermitteln
var status = from k in TonisTortenTraumContext.Kunden
                 join s in TonisTortenTraumContext.StatusMenge
                     on k.Status_ID equals s.ID
                         select new { k.Name, Status = s.Text };

// Ausgabe
foreach (var s in status)
    Debug.WriteLine(s);

Listing 4.29 Der Join-Operator (C#)

Die Ausgabe besteht aus allen Kunden und deren Statustext.

VB.NET

Das Beispiel zeigt, wie Kunden mit ihrem Status »verbunden« werden. Die Verbindung ist über die Eigenschaft Status_ID (Kunden) und ID (StatusMenge) definiert. Das Endergebnis der Abfrage ist eine Liste aus anonymen Typen, die zum Schluss durchlaufen und ausgegeben werden.

' Objektkontext erstellen
Dim TonisTortenTraumContext As New TonisTortenTraumEntities()

' Status für jeden Kunden ermitteln
Dim status = From k In TonisTortenTraumContext.Kunden
                    Join s In TonisTortenTraumContext.StatusMenge
                        On k.Status_ID Equals s.ID
                            Select New With {k.Name, .Status = s.Text}

' Ausgabe
For Each s In status
    Debug.WriteLine(s)
Next

Listing 4.30 Der Join-Operator (VB.NET)

Die Ausgabe besteht aus allen Kunden und deren Statustext.