Maison > développement back-end > C++ > Comment créer dynamiquement des clauses WHERE dans les requêtes LINQ ?

Comment créer dynamiquement des clauses WHERE dans les requêtes LINQ ?

Patricia Arquette
Libérer: 2025-01-14 06:57:43
original
652 Les gens l'ont consulté

How to Dynamically Build WHERE Clauses in LINQ Queries?

Construction dynamique de la clause WHERE dans LINQ

Lors de la création d'une requête LINQ, vous devrez peut-être assembler dynamiquement la clause WHERE en fonction des entrées de l'utilisateur ou des conditions d'exécution. Ceci est particulièrement utile lorsqu'il s'agit de filtres complexes ou de sélection de données dynamiques.

Par exemple, disons que vous disposez d'un formulaire avec un certain nombre de cases à cocher que vous transmettez comme dictionnaire de noms de champs et de leurs valeurs correspondantes. Afin d'incorporer ce filtrage dynamique dans une requête LINQ, vous pouvez utiliser la méthode de chaînage démontrée dans l'exemple de code fourni.

var q = from c in db.ProductDetail
        where c.ProductGroupName == productGroupName && c.ProductTypeName == productTypeName
        select c;

foreach (var filterPair in filterDictionary)
{
    q = q.Where(c => filterPair.Value.Contains(c.GetPropertyValue(filterPair.Key)));
}

q = q.OrderBy(c => c.ProductTypeName);
Copier après la connexion

Dans cet exemple, le filterDictionary est itéré et pour chaque paire de filtres (paire clé-valeur), une nouvelle clause WHERE est ajoutée à la requête. Appelez la méthode GetPropertyValue pour récupérer dynamiquement la valeur de propriété du fieldName spécifié.

Vous pouvez également chaîner la clause WHERE directement dans l'instruction de requête initiale, comme indiqué dans l'exemple de code fourni dans la solution.

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