Dieser Artikel zeigt eine prägnante und ausdrucksstarke Methode zur Durchführung linksgerichteter Veregen mit LINQ -Erweiterungsmethoden und bietet eine andere Perspektive im Vergleich zu anderen Join -Techniken. Wir werden uns auf die praktische Anwendung konzentrieren und sie mit alternativen Ansätzen kontrastieren.
Erwägen Sie, Tabellen Foo
und Bar
zu verbinden, wobei Foo.Foo_Id
Bar.Foo_Id
übereinstimmt. Hier erfahren
<code class="language-csharp">var qry = Foo.GroupJoin( Bar, foo => foo.Foo_Id, bar => bar.Foo_Id, (x, y) => new { Foo = x, Bars = y }) .SelectMany( x => x.Bars.DefaultIfEmpty(), (x, y) => new { Foo = x.Foo, Bar = y });</code>
führt den Kernverbindungsvorgang durch und gruppiert Ergebnisse basierend auf den angegebenen Tasten. GroupJoin
dann flacht die gruppierten Ergebnisse und erstellt für jeden zusammengefügten Datensatz einen anonymen Typ. Entscheidend ist SelectMany
Fälle, in denen ein DefaultIfEmpty()
-Datensatz einen passenden Foo
-Trägweserven fehlt, um sicherzustellen
Bar
Dieser Ansatz, der die Leistung von Erweiterungsmethoden nutzt, bietet Flexibilität und Lesbarkeit, wenn komplexe LINQ -Abfragen erstellt werden. Es kombiniert die Vorteile starker Datenstrukturen mit der eleganten Syntax von Linq. Foo
Das obige ist der detaillierte Inhalt vonWie können LINQ-Erweiterungsmethoden verwendet werden, um Left Outer Joins durchzuführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!