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 :
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);
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
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());
  }
}
Et là je donne un exemple avec seulement 2 filtres. Il y en a potentiellement 50, des textboxes, des comboboxes...

Existe t-il un moyen de variabiliser les clauses Where (en LINQ ??) pour pouvoir les combiner après, ou autre ??

Merci d'avance