public static IQueryable< T> Like< T>(this IQueryable< T> source, string propertyName, string keyword) >{ > var type = typeof(T); > var property = type.GetProperty(propertyName); > var parameter = Expression.Parameter(type, "p"); > var propertyAccess = Expression.MakeMemberAccess(parameter, property); > var constant = Expression.Constant(keyword); > > var like = typeof(string).GetMethod("Contains", > new Type[] { typeof(string)}); > MethodCallExpression methodExp = Expression.Call(propertyAccess, like, constant); > Expression< Func< T, bool>> lambda = > Expression.Lambda< Func< T, bool>>(methodExp, parameter); > return source.Where(lambda); >}Thanks a lot, this works fine.