J'ai une requête LINQ to SQL retournant des lignes d'une table dans un objet IQueryable. Je veux ensuite effectuer une requête SQL "WHERE ... IN ...." sur les résultats. Cela fonctionne très bien en utilisant ce qui suit. (Retour des résultats avec id ID1 ID2 ou ID3)Dynamic "WHERE IN" sur IQueryable (linq to SQL)
sQuery = "ID1,ID2,ID3";
string[] aSearch = sQuery.Split(',');
items = items.Where(i => aSearch.Contains(i.ID));
Ce que je voudrais être en mesure de le faire, est la même opération, mais pas à préciser la partie i.ID. Donc, si j'ai la chaîne du nom de champ que je veux appliquer la clause "WHERE IN", comment puis-je l'utiliser dans la méthode .Contains()?
Robert, merci pour votre message. Dynamic Linq a l'air de me permettre de spécifier le champ comme une requête basée sur une chaîne, ce que je veux, mais je ne suis pas sûr qu'il supporte la clause SQL IN. Predicate Builder ressemble à ce que je pourrais créer une expression en chaînant les expressions Predicate.Or ensemble, mais je ne sais pas comment je peux utiliser ma chaîne de nom de colonne dans chacun d'eux. J'ai essayé par la réflexion, et en appelant la méthode Equals, mais pas encore de chance. – matt