Nous travaillons sur un Log Viewer. L’utilisation auront la possibilité de filtrer par utilisateur, gravité, etc.. Dans les jours de Sql, je voudrais ajouter à la chaîne de requête, mais j’ai envie de le faire avec Linq. Comment puis-je ajouter conditionnellement clauses where ?
Réponses
Trop de publicités?Quand il s’agit de linq conditionnelle, je suis très friand de la configuration de filtres et tuyaux.
http://blog.wekeroad.com/MVC-StoreFront/mvcstore-part-3/
Fondamentalement, vous créez une méthode d’extension pour chaque cas de filtre qui prend le IQueryable et un paramètre.
Une autre option serait d'utiliser quelque chose comme le PredicateBuilder discuté ici. Il vous permet d'écrire du code comme suit:
var newKids = Product.ContainsInDescription ("BlackBerry", "iPhone");
var classics = Product.ContainsInDescription ("Nokia", "Ericsson")
.And (Product.IsSelling());
var query = from p in Data.Products.Where (newKids.Or (classics))
select p;
Notez que je n'ai que cela fonctionne avec Linq 2 SQL. EntityFramework ne pas mettre en œuvre l'Expression.Invoquer, ce qui est nécessaire pour que cette méthode fonctionne. J'ai une question au sujet de cette question ici.