如何实现对“Controller / with read / write actions and views,using Entity Framework”向导生成的代码的分页?

时间:2011-04-21 03:10:48

标签: entity-framework asp.net-mvc-3 entity-framework-4

这是ASP.MVC 3控制器代码,由带有EF 4.1工具的“Controller / with read / write actions and views,using Entity Framework”向导生成。当你有10-20条记录时,它在演示中效果很好,但是当你从具有10,000多条记录的DbContext中提取数据时,它显然会减慢速度并产生一个不可用的长页面。

那么,您如何修改Index()以在 db.Courses.ToList()中实现分页?

// wizard generated MVC Controller code
namespace Scheduler.Controllers
{ 
  public class CourseController : Controller
  {
    private CourseEntities db = new CourseEntities();

    //
    // GET: /Course/

    public ViewResult Index()
    {
        // returns over 10,000 courses in the list
        return View(db.Courses.ToList());
    }

  }
}

2 个答案:

答案 0 :(得分:1)

似乎有点Linq to Entities。

这是我修改过的Index()控制器:

public ViewResult Index(int page = 0)
{
    int pageSize = 10;
    var courses = db.Courses.OrderBy(c => c.Id).Skip(page * pageSize).Take(pageSize);
    return View(courses);
}

然后在视图中构建链接,将页面参数附加到网址,如下所示:

/场?页= 2

答案 1 :(得分:1)