Bonjour je cherche à faire l'equivalent d'une requete "LIKE" en SQL (l'équivalent d'un .Contains() )
avec Linq to Entities , en utilisant les lambdas expressions.
Ce sont des contraintes fixes, je ne peut pas me passer des lambdas expression, ni de linq to entities.
J'ai bien trouvé comment faire un "where NOM == 'toto' " en lambda expression
mais j'avoue que je seche pour faire un "where NOM LIKE '%toto%' "
Quelqu'un sait il comment procéder ?
J'avais eu ce bout de code mais il plante au niveau du expression.Call()
Merci pour votre aide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 public static IQueryable<T> Search<T>(this IQueryable<T> query, string propertyName, string value, string mode) { var param = Expression.Parameter(typeof(T), "$$param$$"); var body = Expression.Call( typeof(Program).GetMethod("Like", BindingFlags.Static | BindingFlags.NonPublic | BindingFlags.Public), Expression.PropertyOrField(param, propertyName), Expression.Constant(value, typeof(string))); Expression<Func<T, bool>> filter = Expression.Lambda<Func<T, bool>>(body, param); return query.Where(filter);
Partager