“Ou” équivalent dans Linq Où() expression lambda
Est-il une méthode dans Linq, où vous pouvez utiliser pour construire des chaînes SQL comme "...où (a=1) OU (a=2)"?
- Je suppose que vous savez comment utiliser
||
et veulent quelque chose de dynamique, commea=a.where(hour=> hour<20); if(weekend) a=a.where(hour=> hour>6);
. Vous souhaitez peut-être de l'état que de plus en plus clairement...
Vous devez vous connecter pour publier un commentaire.
Vous pouvez certainement le faire dans une clause where (méthode d'extension). Si vous avez besoin de construire un complexe de requête dynamiquement, cependant, vous pouvez utiliser un PredicateBuilder.
Ou à l'aide d'un PredicateBuilder
Vous pouvez utiliser la norme .NET des opérateurs booléens dans votre clause where:
Vous pouvez utiliser tous les mêmes opérateurs que dans la normale C# ===> || pour "ou" && "et" etc.
Une solution pourrait être Dynamique Linq:
(http://weblogs.asp.net/scottgu/archive/2008/01/07/dynamic-linq-part-1-using-the-linq-dynamic-query-library.aspx)
dans votre
.Where()
appeler le standard Booléen " Ou " opérateur,||
.Tous les Où l'appel n'est un Booléen comparaison sur ce que vous voulez, de sorte que vous pouvez le remplir avec autant de logique conditionnelle comme vous le souhaitez.
Si vous don' t savoir nombre de paramètre, vous pouvez utiliser ceci:
Des Données De L'Échantillon
Code
Cela est construite dans .net maintenant, vous ne savez pas si il a auparavant ne l'était pas. Compte tenu de l'actuelle requête Linq, vous pouvez ajouter une clause where qui prend un tableau de chaînes de caractères (SearchStrings), et vérifier si l'un d'entre eux correspondent à un objet dans la collection, vous êtes à la recherche d'. À l'aide de ToLower() tout à fait sûr que vous éviter de la casse dans les requêtes SQL.
Vous pouvez faire la même chose pour un " et " prédicat par la correspondance de tous les mots dans le tableau à la collecte de l'objet.
Dans cet exemple, je corrélation pour chaque objet dans une collection, et s correspond à chaque chaîne dans la SearchStrings tableau.