Bonjour à tous
Je suis en SL3, avec SQL 2008.
J'ai l'habitude de récupérer mes données en base de manière classique :
Mon problème, c'est qu'en fonction des filtres saisis par l'utilisateur, je peux avoir potentiellement 50 clauses Where, à combiner. Et je veux éviter ce genre de code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 MyContext myContext = new MyContext(); myContext.Load<MyTable>(myContext.GetMyTableQuery().Where(x => x.filter = 50);
Et là je donne un exemple avec seulement 2 filtres. Il y en a potentiellement 50, des textboxes, des comboboxes...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 if (!string.IsNullOrEmpty(tbFiltre1.Text)) { if (!string.IsNullOrEmpty(tbFiltre2.Text)) { myContext.Load<MyTable>(myContext.GetMyTableQuery().Where(x => x.filter1 = tbFiltre1.Text).Where(x => x.filter2 = tbFiltre2.Text); } else { myContext.Load<MyTable>(myContext.GetMyTableQuery().Where(x => x.filter1 = tbFiltre1.Text); } } else { if (!string.IsNullOrEmpty(tbFiltre2.Text)) { myContext.Load<MyTable>(myContext.GetMyTableQuery().Where(x => x.filter2 = tbFiltre2.Text); } else { myContext.Load<MyTable>(myContext.GetMyTableQuery()); } }
Existe t-il un moyen de variabiliser les clauses Where (en LINQ ??) pour pouvoir les combiner après, ou autre ??
Merci d'avance![]()
Partager