mvc5

时间:2015-10-24 08:50:50

标签: 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 = (page ?? 1);
    return View(students.ToPagedList(pageNumber, pageSize));
}

它工作正常,但我认为每次从数据库中获取所有数据,然后在分页中显示。 当我点击第一页时,它会加载所有数据并仅显示第一页的数据。如果每次加载每个页面的所有数据,那么它就没有效率。有人可以澄清这段代码是否适合分页或如何只从数据库加载分页范围?

1 个答案:

答案 0 :(得分:1)

是的,你拿走所有数据。我是这样做的:

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)