Maison > développement back-end > C++ > Comment créer une clause WHERE dynamique avec OR dans LINQ to Entities ?

Comment créer une clause WHERE dynamique avec OR dans LINQ to Entities ?

Mary-Kate Olsen
Libérer: 2025-01-22 05:01:08
original
638 Les gens l'ont consulté

How to Build a Dynamic WHERE Clause with OR in LINQ to Entities?

Clause WHERE dynamique (OR) dans LINQ to Entities

La création de requêtes dynamiques à l'aide de l'opérateur OR dans LINQ nécessite PredicateBuilder, un utilitaire LINQKit. Voici comment procéder :

<code class="language-csharp">var query = from u in context.Users select u;
var pred = Predicate.False<User>();

if (type.HasFlag(IdentifierType.Username))
    pred = pred.Or(u => u.Username == identifier);

if (type.HasFlag(IdentifierType.Windows))
    pred = pred.Or(u => u.WindowsUsername == identifier);

return query.Where(pred.Expand()).FirstOrDefault();</code>
Copier après la connexion

Cependant, utiliser AsExpandable() est une autre option :

<code class="language-csharp">return query.AsExpandable().Where(pred).FirstOrDefault();</code>
Copier après la connexion
La méthode

Expand permet de gérer les expressions appelantes que EF ne peut pas gérer. Sans cela, une exception sera levée.

Une autre option Predicate Builder qui obtient la même fonctionnalité sans Expand peut être trouvée sur http://petemontgomery.wordpress.com/2011/02/10/a-universal-predicatebuilder/.

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