27 votes

Expression.Invoke dans Entity Framework?

Entity Framework ne prend pas en charge l' Expression.Invoke de l'opérateur. Vous recevez l'exception suivante lorsque vous essayez de l'utiliser:

"L'expression LINQ nœud de type "Invoquer" n'est pas pris en charge dans LINQ to entities.

Quiconque a une solution de contournement pour cette fonctionnalité manquante? Je voudrais utiliser le PredicateBuilder détaillé ici dans une Entité Cadre de contexte.

Edit 1 @marxidad - j'aime votre suggestion, mais il ne déflecteur de moi un peu. Pouvez-vous donner quelques conseils sur la solution que vous proposez?

Edit 2 @marxidad - Merci pour la clarification.

29voto

Joe Albahari Points 13644

PredicateBuilder et LINQKit prennent désormais en charge Entity Framework.

Désolé, les gars, de ne pas l'avoir fait plus tôt!

3voto

Phobis Points 3070

0voto

Darren Kopp Points 27704

Oui, on dirait que Entity Framework ne prend pas en charge cela, et je ne pourrais pas non plus trouver un moyen de le faire évaluer d'une manière qui fonctionnerait.

0voto

Mark Cidade Points 53945

Le framework Entity convertit les expressions LINQ en arborescences de commandes d'entité et, dans ce cadre, seules ses fonctions canoniques sont prises en charge. Vous devez utiliser les arborescences de commandes avec des fonctions canoniques pour faire quelque chose comme PredicateBuilder.

0voto

user17060 Points 296

La solution de Phobis est sur l'argent.

Avec un peu d'effort supplémentaire, vous pouvez créer des requêtes Dynamic LINQ complexes à la volée en utilisant cette approche

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X