Linq中可实现分页的功能方法

在MVC中的一个例子

public ActionResult PageData(int? pageSize, int? pageIndex)
        {
            pageSize = pageSize ?? 2;
            pageIndex = pageIndex ?? 1;
            ViewData["CurrentPage"] = pageIndex.Value;
            ViewData["PageSize"] = pageSize.Value;
            ViewData["TotalCount"] = db.Subjects.Count();
            ViewData["PageNum"] = Math.Max((db.Subjects.Count() + pageSize.Value - 1) / pageSize.Value, 1);
            var temp = db.Subjects
                .OrderBy(c => c.SubjectId)
                .Skip<Subject>(pageSize.Value * (pageIndex.Value - 1))
                .Take<Subject>(pageSize.Value);
            return View("Index",temp);
        }

在方法层的一个例子

public void LinqToSqlPaging01() {
    var q = (
        from c in db.Customers
        orderby c.ContactName
        select c)
        .Skip(50)
        .Take(10);

    ObjectDumper.Write(q);
}

public void LinqToSqlPaging02() {
    var q = (
        from p in db.Products
        where p.ProductID > 50
        orderby p.ProductID
        select p)
        .Take(10);

    ObjectDumper.Write(q);
}

 

posted @ 2015-05-13 15:17  liuqichun  阅读(228)  评论(0编辑  收藏  举报