Bonjour à tous !
Je travail sur un projet qui utilise des requêtes linq dynamique sur une entité.
J'ai un très grand nombres de cas et pour éviter la duplication de code j'ai refactoré (désolé pour le franglais...) en plusieurs méthodes.
Mais utiliser des méthodes qui sont dans le magasin d'expression lève une exception, alors un des solutions est d'encapsuler le résultat de ces fonctions dans une expression qui elle pourra être interprété par linq to EF.
Considérons alors ce code :
Si je suis la logique proposé au dessus j'arrive à :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 parentExpression = x => x.child.Any(y=>IsGoodChild(y,childType, childSize)); private bool IsGoodChild(child c, int childType, int childSize){ return c.type == childType && c.size == childSize; }
Mais là je me retrouve avec une jolie 'Internal .NET Framework Data Provider error 1025'
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 parentExpression = x => x.child.AsQueryable().Any(IsGoodChild(childType, childSize)); private System.Linq.Expression.Expression<Func<child, bool>> IsGoodChild(int childType, int childSize){ return c => c.type == childType && c.size == childSize; }
Après moult et moult recherche je reste bloqué , avez-vous une idée et/ou solution ?
Partager