2010-10-28 3 views
2

J'ai par exemple les voitures de tableFiltrer par critériums dans la requête LINQ

table cars(
producer varchar(30), 
model varchar(30), 
price integer, 
start datetime, 
end datetime) 

et je dois renvoyer des données à partir du tableau à l'aide de critères (sur la base d'un critère, ou deux ou tous). Est-il possible de créer dynamiquement une question linq (juste une requête linq, ne pas créer pour toutes les combinaisons différentes requêtes linq)? Je peux utiliser certaines valeurs par défaut et rechercher toujours tout acheter mais cela diminue mes performances quand j'ai besoin de chercher par un ou aucun.

+4

Juste FWIW, le singulier est « critère » et le pluriel est « critères ». Un "critérium" est un type de course cycliste (qui a plusieurs tours sur un parcours relativement court). –

+1

@Jerry Coffin Pouvez-vous aider maintenant? – Rebecca

+0

Peut-être que vous pouvez donner un exemple de ce que vous voulez une requête et quelles données devraient retourner? – gideon

Répondre

0

La réponse courte est oui.

Vous pouvez commencer avec Dynamic LINQ Where Extension pour obtenir quelque chose de opérationnel, mais il aura besoin de quelques améliorations pour faire face à DateTimes.

J'utilise ci-dessus en conjonction avec une boucle pour faire face aux multiples critères:

var q = from c in db.Cars select c; 

filters.ForEach (filter => 
{ 
    q = q.Where (filter.Field, filter.Value, filter.Comparison); 
}); 
+0

Merci Bender, je vais essayer ça! – Rebecca