"Méthode" Boolean Contient (System.String) 'n'a pas de traduction prise en charge par SQL. "La méthode 'Boolean Contient (System.String)' n'a pas de traduction prise en charge en SQL
requête est IsQueryable mais cela a cessé de fonctionner:
foreach (string s in collection1)
{
if (s.Length > 0)
{
query = query.Where(m => m.collection2.Contains(s));
}
}
MISE À JOUR: cela fonctionne quand je fais requête "IEnumerable" au lieu de IQueryable. Quel serait le moyen d'obtenir le même résultat en utilisant linq au lieu d'itérer en boucle?
Pouvez-vous envoyer ce que votre requête est avant qu'elle ne passe dans cette boucle? –
L'utilisation de LINQ pur ne change rien - il a aussi le même problème. Pour une raison inconnue, si LINQ détecte "étrange" collection comme HashSet il ne l'utilise pas comme IEnumerable, l'utilisateur doit convertir sa collection directement à IEnumerable - puis Containts est correctement traduit en SQL (IN je suppose). – greenoldman