Maison > base de données > tutoriel mysql > Comment répliquer l'instruction « IN » de SQL à l'aide de LINQ ?

Comment répliquer l'instruction « IN » de SQL à l'aide de LINQ ?

Patricia Arquette
Libérer: 2024-12-30 21:32:11
original
878 Les gens l'ont consulté

How to Replicate SQL's

É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

  • ItemId
  • Marque
  • Nom
  • Prix
  • Condition
  • Description
  • Actif

Tag s

  • TagId
  • Nom
  • Actif

TagMap

  • TagMapId
  • TagId
  • ItemId
  • Actif

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;
Copier après la connexion

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