需要一些关于如何使用Repository模式在单个表上创建分页机制的技巧

时间:2012-01-17 00:37:40

标签: c# asp.net-mvc-3 repository-pattern paging

我有一个名为News的简单表。

我正在使用Entity Framework为我生成模型,我正在使用Repository模式访问每条新闻记录。

假设一个简单模型,其中PublishDate是DateTime属性:

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

我需要找出一种用于检索这些记录的分页机制。

类似的东西:

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

任何提示或工作示例代码?如果没有选择页面,我需要获取最新的5条新闻记录,但如果选择了某个页面,则会获取该页面的相应记录。

我无法提供更多代码,因为我不知道从哪里开始。

1 个答案:

答案 0 :(得分:2)

尝试

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);
}