Maison >développement back-end >C++ >Comment créer dynamiquement des clauses WHERE dans les requêtes LINQ ?
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.
<code class="language-c#">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);</code>
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!