1

考虑下面的代码,使用 EF 和 PagedList:

var students = from s in db.Students
                  select s;

int pageSize = 30;
int pageNumber = (page ?? 1);
return View(students.ToPagedList(pageNumber, pageSize));

如果学生表有 10,000 条记录,但我只想显示 30 条记录(一页),上面的代码是否从 DB 返回所有 10,000 条记录然后传递给查看?

如果是,最好在数据库中有一个存储过程并让存储过程进行分页并只从数据库返回 30 条记录,这是更好的性能方式(仅通过网络传输 30 条记录)吗?

4

1 回答 1

2

这是 Troy Goode 的分页列表 ( https://github.com/TroyGoode/PagedList )?

只要数据源是 IQueryable,分页就会在 SQL Server 内部发生,这看起来应该在您的代码示例中。

于 2013-11-03T23:40:28.747 回答