服务器端分页和带有DbContext的OrderBy

时间:2012-03-01 15:45:49

标签: c# asp.net-mvc-3 entity-framework-4.1

是否有人可以告诉如何使用DbContext进行服务器端分页和orderby功能。我使用Where子句来过滤记录。需要类似的东西,以便我只获得有限数量的记录。

提前致谢

2 个答案:

答案 0 :(得分:1)

检查此解决方案。可能是你正在寻找的东西:

public const int PAGE_SIZE = 10;
protected void LinqDataSource1_Selecting(object sender, LinqDataSourceSelectEventArgs e)
{
// LINQ query
    var query = from m in db.Products
    select m;
    // Set the total count
    // so GridView knows how many pages to create
    e.Arguments.TotalRowCount = query.Count();
    // Get only the rows we need for the page requested
    query = query.Skip(GridView1.PageIndex * PAGE_SIZE).Take(PAGE_SIZE);
    e.Result = query;
}

Effective Paging using LINQ

答案 1 :(得分:0)

您可以使用SkipTop构建器方法在EF中执行此操作,或在调用Skip后使用LINQ TakeOrderBy执行此操作。