Zwe Hein Ответов: 2

Метод 'пропустить' поддерживается только для сортированных входных в LINQ для сущностей. Метод 'orderby' должен быть вызван перед методом 'skip'.'


public virtual IEnumerable<TEntity> Get(int? page, Expression<Func<TEntity,bool>> filter = null, Func<IQueryable<TEntity>, IOrderedQueryable<TEntity>> orderBy = null, string includeProperties = "")
        {
            IQueryable<TEntity> query = dbSet;
            if (filter != null)
            {
                query = query.Where(filter);
            }

            foreach (var includeProperty in includeProperties.Split
                (new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries))
            {
                query = query.Include(includeProperty);
            }

            if (orderBy != null)
            {
                return orderBy(query).ToPagedList(page ?? 1, 5);
                
            }
            else
            {
                
                return query.ToPagedList(page ?? 1, 5);
            }

        }


Что я уже пробовал:

Я использую универсальный репозиторий и pagedlist.mvc.

2 Ответов

Рейтинг:
13

Sacha Barber

Путем предоставления ненулевого значения для

orderBy 


Так скажем ваш список состоял из Персоны объекта


public class Person
{
   int Age{ get; set; }
}



Я бы попробовал вызвать код РЕПО следующим образом

...Get(page: 1, filter: x => x.Age > 5, orderBy: people => people.OrderBy(x => x.Age), includeProperties: "");


Zwe Hein

решенный. Я изменил его, основываясь на вашем предложении. Спасибо.

Вам(заказатьпо: Р =&ГТ; п.Заказатьпо(ы =&ГТ; с. Кодтовара) )

Sacha Barber

Круто

Рейтинг:
0

Sacha Barber

Я хотел бы взглянуть на

ToPagedList()
это похоже на какой-то метод расширения


Zwe Hein

да. Чтобы использовать функцию PageList, необходимо выполнить сортировку. Но я использую универсальный репозиторий. мне нужно сортировать, но я не знаю, как сортировать перед PageList.

Спасибо за Ваш отзыв.