Maison >base de données >tutoriel mysql >Comment répliquer l'instruction « IN » de SQL à l'aide de LINQ ?
Équivalent LINQ de l'instruction "IN" de SQL
Dans cet article, nous aborderons la tâche d'écriture d'une requête LINQ qui émule le comportement de l'instruction SQL "IN". Cette requête récupérera les éléments qui correspondent à une liste de balises spécifiée.
Imaginez le schéma de base de données suivant qui prend en charge l'élément marquage :
Articles
Tag s
TagMap
Problème Déclaration :
Écrivez une requête LINQ qui renvoie les éléments correspondant à une liste de balises spécifiée. Par exemple, si les balises souhaitées sont 2, 3, 4 et 7, la requête doit récupérer les éléments avec ces balises.
Solution :
Nous pouvons y parvenir en utilisant ce qui suit Requête LINQ :
var TagIds = new[] { 2, 3, 4, 7 }; var q = from map in Context.TagMaps where TagIds.Contains(map.TagId) select map.Items;
La requête initialise d'abord un tableau entier TagIds avec les ID de balise souhaités. Elle joint ensuite la table TagMaps à ce tableau à l'aide de la méthode Contains, qui vérifie si la colonne TagId de TagMaps existe dans le tableau TagIds.
Cette requête génère une clause "IN" paramétrée dans l'instruction SQL, garantissant ainsi une efficacité exécution. Cela se traduit essentiellement par le SQL suivant :
SELECT Items FROM TagMaps WHERE TagId IN (2, 3, 4, 7);
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!