ASP.NET MVC的分页解决方案是否在数据库中进行分页?

gab*_*abe 13 database asp.net-mvc paging pagination linq-to-sql

我通过google搜索找到的大多数ASP.NET MVC分页解决方案看起来都是以IEnumerable集合的形式从数据库表中获取所有行,对IEnumerable集合执行一些分页转换,然后将结果返回给视图.我希望能够在数据库端进行分页,但仍然有一些分页类来进行页码计算和HTML生成.那里有解决办法吗?或者是我一直在寻找的那些,但我没有看到它,因为我看错了他们?

这是我一直在看的东西:

jva*_*erh 14

看看顾的Nerdinner样本.

var upcomingDinners = dinnerRepository.FindUpcomingDinners();  
var paginatedDinners = upcomingDinners.Skip(10).Take(20).ToList(); 
Run Code Online (Sandbox Code Playgroud)

即使FindUpcomingDinners()获取所有即将到来的晚餐,在您在下一行中调用ToList()之前,查询不会在数据库中执行.这是在你跳过10行并且只获得
接下来的20 行之后.


Cra*_*ntz 5

你错了.PagedList将在数据库服务器上执行,因为它具有IQueryable扩展.