Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Incorrect number of parameters supplied for lambda 
:(
    Опции темы
Nickname
Дата 29.7.2010, 14:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 246
Регистрация: 24.10.2006
Где: Санкт-Петербург

Репутация: нет
Всего: 1



Не могу понять в чем ошибка
Код


        public static IQueryable<TEntity> LikeAny<TEntity>(
            this IQueryable<TEntity> query,
            Expression<Func<TEntity, string>>[] selectors,
            IEnumerable<string> values)
        {
            if (selectors == null)
            {
                throw new ArgumentNullException("selector");
            }
            if (values == null)
            {
                throw new ArgumentNullException("values");
            }
            if (!values.Any())
            {
                return query;
            }

            Expression[] body = new Expression[selectors.Count()];
            int i = 0;
            ParameterExpression[] p = new ParameterExpression[selectors.Count()];
            
            foreach (Expression<Func<TEntity, string>> selector in selectors)
            {                
                p[i] = selector.Parameters.Single();
                var conditions = values.Select(v =>
                    (Expression)Expression.Call(typeof(SqlMethods), "Like", null,
                        selector.Body, Expression.Constant("%" + v + "%")));
                body[i] = conditions.Aggregate((acc, c) => Expression.Or(acc, c));
                i++;

            }

            var expr = Expression.Lambda<Func<TEntity, bool>>(body.Aggregate((acc, c) => Expression.Or(acc, c)), p);
            return query.Where(expr);            
        }

на предпоследней строке (var expr = Expression.Lambda<Func....)
выдает ошибку 
Код

Incorrect number of parameters supplied for lambda

вызывается метод так
Код

(from b in Blogs
where b.BlogHide == 0
select new BlogsList { Blog_ = b})
.LikeAny(new Expression<Func<BlogsList, string>>[] { s => s.Blog_.BlogMessage, d => d.Blog_.BlogMessage }, terms)             

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | LINQ (Language-Integrated Query) | Следующая тема »


 




[ Время генерации скрипта: 0.0595 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.