【发布时间】:2014-01-13 04:27:52
【问题描述】:
我有一个要排序的网格视图。我为它写了如下方法:
private void SortGridView(string sortExpression, string direction)
{
var constr = new AdminRequirementEF();
string sort = string.Concat("it.", sortExpression, " ", direction);
int pageSize = Convert.ToInt32(ddPageSize.SelectedItem.Text);
var results = constr.Projects;
int totalRecords = results.Count();
this.PopulatePager(totalRecords, pageIndex);
var sortedResults = constr.Projects.OrderBy(sort).Skip((pageIndex - 1) * pageSize).Take(pageNum).ToList();
grdMain.DataSource = sortedResults;
grdMain.DataBind();
}
问题是排序应用于总记录而不是每页过滤记录。我想在应用 skip 和 take 之后使用 OrderBy(sort) ,但它给了我一个错误,指出在 orderby 子句之前不能应用 skip 。任何帮助将不胜感激。
【问题讨论】:
-
这是哪个 EF 版本?这应该没问题。生成的 SQL 是什么样的?
标签: asp.net entity-framework sorting gridview