【发布时间】:2013-11-09 08:07:05
【问题描述】:
我想在我的视图中添加分页。我查看了 PagedList(Nuget 包),它真的很好。我遇到的问题是它需要从数据库中提取所有记录。如您所见,如果有数百万行,效率不会很高。
是否有任何 Nuget Paging 包不需要您提取所有数据库记录? 我必须编写自己的自定义分页吗?
【问题讨论】:
-
我不知道有任何 nuget 包,但公平地说,我没有在其中玩弄或研究太多。我可以说的是,在 SQL Server 语句中创建分页并不难。所以实际上,正如您所发现的,最好在数据源级别进行分页,而不是事后。老实说,我不知道为什么那些把所有东西都拉到页面上的开发人员却能逃脱惩罚——恕我直言,他们需要一记耳光!
-
如果您将
IQueryable与PagedList一起使用,它不会提取所有记录。 -
只是我的意见,但在处理数百万行时,我不会在复杂的分页上浪费时间。我会选择智能过滤和/或搜索优化。老实说:有人在 Google 搜索结果的第 3 页之外翻页了多少次?
标签: asp.net-mvc model-view-controller