Нужны советы о том, как создать механизм разбиения на страницы для одной таблицы, используя шаблон репозитория - PullRequest
0 голосов
/ 17 января 2012

У меня есть простая таблица с именем News.

. Я использую Entity Framework для создания модели и использую шаблон Repository для доступа к каждой записи News.

Предположим простую модель, где PublishDate - это свойство DateTime:

News
--------
NewsID
Title
Body
PublishDate 

Мне нужно выяснить механизм подкачки для получения этих записей.

Что-то вроде:

public IQueryable<News> FindNews(int? page)
{
    //Something here?
}

Какие-нибудь советы или рабочий пример кода?Мне нужно получить последние 5 новостей, если страница не выбрана, но если страница выбрана, извлеките соответствующие записи для этой страницы.

Я не могу предоставить больше кода, так как не знаю, гденачать.

1 Ответ

2 голосов
/ 17 января 2012

Попробуйте

public IQueryable<News> FindNews(int? page)
{
    IQueryable<News> news = db.News.OrderByDescending(n => n.PublishDate);

    if (page != null)
       news = news.Skip(page.Value * 5);

    return news.Take(5);
}
...