考虑下面的代码,使用EF和PagedList:
var students = from s in db.Students
select s;
int pageSize = 30;
int pageNumber = (page ?? 1);
return View(students.ToPagedList(pageNumber, pageSize));
如果Students表有10,000条记录,但我只想显示30条记录(一页),上面的代码是否会返回DB中的所有10,000条记录,然后传递给查看?
如果是,最好在DB中存储一个存储过程并让存储过程执行分页并仅从DB返回30条记录,这是更好的性能方式(仅通过网络传输30条记录)吗?
答案 0 :(得分:2)
这是Troy Goode的分页列表(https://github.com/TroyGoode/PagedList)?
只要数据源是IQueryable,就会在SQL Server内部进行分页,这看起来应该在你的代码示例中。