Heim > Backend-Entwicklung > C++ > Wie führt man Mehrfeldverknüpfungen in einer einzelnen LINQ-Abfrage durch?

Wie führt man Mehrfeldverknüpfungen in einer einzelnen LINQ-Abfrage durch?

Susan Sarandon
Freigeben: 2025-01-24 02:19:10
Original
980 Leute haben es durchsucht

How to Perform Multi-Field Joins in a Single LINQ Query?

LINQ-Mehrfeldverbindung: Mehrere Entitäten effizient verknüpfen

In LINQ wird zum Verbinden mehrerer Entitäten normalerweise das Schlüsselwort join verwendet. Obwohl Einzelfeld-Joins häufiger vorkommen, können Mehrfeld-Joins durch einfache Syntaxanpassungen problemlos implementiert werden.

Mehrfeld-Join-Syntax

Die Syntax zum Zusammenführen mehrerer Felder in einer einzelnen LINQ-Abfrage lautet wie folgt:

<code class="language-csharp">from x in entity
join y in entity2 
   on new { x.field1, x.field2 } equals new { y.field1, y.field2 }</code>
Nach dem Login kopieren
Das Schlüsselwort

new erstellt einen anonymen Typ, der die Felder von zwei Entitäten kombiniert, die für den Join verwendet werden. Der anonyme Typ auf der linken Seite des Gleichheitszeichens stellt die Verbindungsbedingung der ersten Entität dar, und die rechte Seite stellt die Verbindungsbedingung der zweiten Entität dar.

Beispiel

Hier ist ein Beispiel:

<code class="language-csharp">var result = from x in entity
   join y in entity2 
   on new { x.field1, x.field2 } equals new { y.field1, y.field2 }</code>
Nach dem Login kopieren

Diese Abfrage verknüpft field1 und field2 basierend auf den Feldern entity und entity2 und gibt eine kombinierte Sequenz mit Datensätzen zurück, die den angegebenen Feldern in beiden Entitäten entsprechen.

Andere Hinweise

Es ist zu beachten, dass die Datentypen der Verbindungsfelder kompatibel sein müssen. Darüber hinaus führt das Schlüsselwort join einen Inner Join durch, was bedeutet, dass nur Datensätze mit übereinstimmenden Feldwerten zurückgegeben werden.

Wenn Sie einen Left Outer Join durchführen müssen, können Sie den Operator GroupJoin verwenden. Zum Beispiel:

<code class="language-csharp">var result = from x in entity
   join y in entity2 
   on new { x.field1, x.field2 } equals new { y.field1, y.field2 } into yGroup
   from y in yGroup.DefaultIfEmpty()</code>
Nach dem Login kopieren

Diese Abfrage führt einen linken äußeren Join durch und stellt so sicher, dass alle Datensätze in der Tabelle entity zurückgegeben werden, auch wenn es keine passenden Datensätze in der Tabelle entity2 gibt.

Das obige ist der detaillierte Inhalt vonWie führt man Mehrfeldverknüpfungen in einer einzelnen LINQ-Abfrage durch?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage