Liste de filtres en tant que paramètre dans une requête compilé
-
04-10-2019 - |
Question
J'ai compilé la requête suivante que je veux retourner une liste des « groupes » qui n'ont pas de « GroupID » qui est contenu dans une liste filtrée:
CompiledQuery.Compile(ConfigEntities contexty, List<int> list) =>
from c in context.Groups
where (!csList.Contains(c.GroupID))
select c).ToList()
Cependant, je reçois l'erreur d'exécution suivante:
Les paramètres spécifiés catégories '' de type 'System.Collections.Generic.List`1 [[System.Int32, mscorlib, Version = 2.0.0.0, Culture = neutral, PublicKeyToken = b77a5c261364e126]]' est pas valide. Seuls les paramètres scalaires (tels que Int32, décimal et Guid) sont pris en charge.
Toutes les idées?
La solution
Cette requête fonctionne très bien dans EF 4.
EF 1, IEnumerable.Contains
ne sont pas pris en charge dans L2E (avec ou sans CompiledQuery
). Il existe une solution, cependant; Google "BuildContainsExpression`, ou regardez ici .