需要一些关于如何使用存储库模式在单个表上创建分页机制的提示

问题描述 投票:0回答:1

我有一个简单的表,名为

News

我正在使用实体框架为我生成一个模型,并且我正在使用存储库模式来访问每个新闻记录。

假设一个简单的模型,其中

PublishDate
是 DateTime 属性:

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

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

类似:

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

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

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

c# asp.net-mvc-3 pagination repository-pattern
1个回答
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);
}
© www.soinside.com 2019 - 2024. All rights reserved.