在ASP.NET MVC应用程序中使用实体框架进行分页

时间:2013-11-02 14:36:46

标签: performance entity-framework pagination

考虑下面的代码,使用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条记录)吗?

1 个答案:

答案 0 :(得分:2)

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

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