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
981 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

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 });
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

.
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 });
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!

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