Maison > développement back-end > C++ > Comment effectuer des jointures externes gauche dans LINQ sans clauses «jointure-on-equals-in»?

Comment effectuer des jointures externes gauche dans LINQ sans clauses «jointure-on-equals-in»?

Patricia Arquette
Libérer: 2025-02-02 14:31:09
original
906 Les gens l'ont consulté

How to Perform Left Outer Joins in LINQ without `join-on-equals-into` Clauses?

Pas besoin d'effectuer la connexion externe gauche

join-on-equals-into Dans C # linq aux objets, vous pouvez utiliser la méthode

pour exécuter la connexion externe gauche de la clause

. DefaultIfEmpty() join-on-equals-into Solution sur la connexion externe gauche

Pour utiliser la clause pour exécuter la connexion externe gauche, veuillez modifier le code comme suit:

Explication Where

<code class="language-csharp">List<joinpair> leftFinal = (from l in lefts
                             join r in rights on l.Key equals r.Key into temp
                             from r in temp.DefaultIfEmpty()
                             select new JoinPair { LeftId = l.Id, RightId = r == null ? 0 : r.Id });</code>
Copier après la connexion
Si les conditions de connexion ne correspondent pas, renvoyez la valeur par défaut du type de collection connecté (

dans cet exemple). Cela garantit que toutes les lignes de la table de gauche () sont incluses dans les résultats, même s'il n'y a pas de ligne de correspondance dans la table droite ().

Exemple

DefaultIfEmpty() JoinPair Considérant le code prévu pour la connexion interne: lefts rights

Pour atteindre la connexion externe gauche, veuillez remplacer

clauses dans les suivantes:

Cette modification garantira que toutes les lignes de gauche

sont incluses dans les résultats, y compris les lignes qui ne sont pas appariées dans la droite

.
<code class="language-csharp">List<joinpair> innerFinal = (from l in lefts
                             from r in rights
                             where l.Key == r.Key
                             select new JoinPair { LeftId = l.Id, RightId = r.Id });</code>
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal