Salut,
Je dois effectuer un filtre en cascade sur une vue dont chaque champ est le résultat d'une requête XQuery.
La vue permet d'occulter l'XML.
J'ai mappé ma vue à EF.
Chaque colonne de ma vue a un Nom qui est utilisé dans une table de conditions (KeyValuePair<string,string>)
J'ai chargé l'ensemble de mes éléments une première fois.
J'aimerais arriver à faire un truc du style :
Je suis pratiquement certain que c'est possible mais je ne trouve pas la syntaxe.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 foreach (var oCondition in lstConditions) { switch (oCondition.Key.Nom) { maVue = maVue.Where(unItem.DontLeChamps[oCondition.Key]==oCondition.Value); } }
En cherchant je suis tombé sur
http://developers.de/blogs/andreas_l...framework.aspx
Mais je n'arrive pas à l'appliquer à mon cas.
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 1: Dictionary<string, string> props = new Dictionary<string, string>(); 2: props.Add("PropA", "abc"); 3: props.Add("PropB", "cde"); 4: 5: using (EFTestEntities context = new EFTestEntities()) 6: { 7: var items = from item in context.TItem.Include("TItemProp") 8: select item; 9: 10: foreach (var prop in props) 11: { 12: items = items.Where(i => (i.TItemProp.Count(ip => ip.PropKey == prop.Key && ip.PropValue == prop.Value)) > 0); 13: } 14: 15: return items.ToList(); 16: }
Ca vous parle ?
D'avance merci
Laurent
Partager