C# mvc5中的分页

C# mvc5中的分页,c#,linq,asp.net-mvc-5,C#,Linq,Asp.net Mvc 5,有人能帮我吗? 我在asp.net mvc5 EF中使用默认分页系统。 这是我的密码 public ViewResult Index(int? page) { var students = from s in db.Students select s; students = students.OrderBy(s => s.LastName); int pageSize = 5; int pageNumber = (pag

有人能帮我吗? 我在asp.net mvc5 EF中使用默认分页系统。 这是我的密码

public ViewResult Index(int? page)
{
    var students = from s in db.Students
                   select s;
    students = students.OrderBy(s => s.LastName);
    int pageSize = 5;
    int pageNumber = (page ?? 1);
    return View(students.ToPagedList(pageNumber, pageSize));
}
它工作得很好,但我认为每次它都会从数据库中获取所有数据,然后显示在分页中。
当我点击第一页时,它会加载所有数据,只显示第一页的数据。如果每次加载每个页面的所有数据时单击,则效率低下。是否有人可以澄清此代码是否适用于分页,或者如何仅从数据库加载分页范围?

是,您获取所有数据。我是这样做的:

var students = (from s in db.Students
               select s orderby s.LastName).Skip((page ?? 1)* 5).Take(5);
或者使用lambda表达式

var students = db.Students.OrderBy(x=>x.LastName).Skip((page ?? 1)* 5).Take(5)

很抱歉,跳过功能应该是
(第0页)
,因为对于第一页,您不应该跳过任何内容。