Connexion multi-champs LINQ : associez efficacement plusieurs entités
Dans LINQ, la connexion de plusieurs entités utilise généralement le mot-clé join
. Bien que les jointures à champ unique soient plus courantes, les jointures à champs multiples peuvent être facilement mises en œuvre grâce à de simples ajustements de syntaxe.
Syntaxe de jointure multi-champs
La syntaxe pour joindre plusieurs champs dans une seule requête LINQ est la suivante :
from x in entity join y in entity2 on new { x.field1, x.field2 } equals new { y.field1, y.field2 }
new
crée un type anonyme qui combine les champs de deux entités utilisées pour la jointure. Le type anonyme à gauche du signe égal représente la condition de connexion de la première entité et le côté droit représente la condition de connexion de la deuxième entité.
Exemple
Voici un exemple :
var result = from x in entity join y in entity2 on new { x.field1, x.field2 } equals new { y.field1, y.field2 }
Cette requête joindra field1
et field2
en fonction des champs entity
et entity2
, renvoyant une séquence combinée contenant des enregistrements correspondant aux champs spécifiés dans les deux entités.
Autres notes
Il est à noter que les types de données des champs de connexion doivent être compatibles. De plus, le mot-clé join
effectue une jointure interne, ce qui signifie que seuls les enregistrements dont les valeurs de champ correspondent seront renvoyés.
Si vous devez effectuer une jointure externe gauche, vous pouvez utiliser l'opérateur GroupJoin
. Par exemple :
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()
Cette requête effectuera une jointure externe gauche, garantissant que tous les enregistrements de la table entity
sont renvoyés, même s'il n'y a aucun enregistrement correspondant dans la table entity2
.
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!