Asp.net mvc 3 如何在具有大量结果的分页网格上提高查询速度?
我正在从IBMi查询数据并将其显示在网格中。显示所有记录的目的有两个原因:Asp.net mvc 3 如何在具有大量结果的分页网格上提高查询速度?,asp.net-mvc-3,ibm-midrange,mvccontrib,Asp.net Mvc 3,Ibm Midrange,Mvccontrib,我正在从IBMi查询数据并将其显示在网格中。显示所有记录的目的有两个原因: 现有的软件没有被正确使用,人们也没有关闭这些项目。(用户/培训问题是,但请参见其他项目)。因此,将列表缩小到只打开的项目是不准确的 它允许用户查询所有历史记录(这是基于属性的,历史记录可能很重要) 然而,目前有28000个项目,并且将不断增加。现在,我正在使用MvcContrib网格。这是我的密码: public ActionResult Index(GridSortOptions gridSortOptions
public ActionResult Index(GridSortOptions gridSortOptions, int? page, int? filterPropertyUniqueKey, int? filterPermitNumber)
{
#region Filter and Sort
var permits = buildingPermitRepository.GetOpenPermits();
// Set default sort and apply filters
if (filterPermitNumber.HasValue)
{
permits = permits.Where(w => w.PermitId == filterPermitNumber.Value);
}
// TODO add more filters
if (String.IsNullOrEmpty(gridSortOptions.Column))
{
gridSortOptions.Column = "DateApplied";
gridSortOptions.Direction = SortDirection.Descending;
}
var permitsPagedList = permits.OrderBy(gridSortOptions.Column, gridSortOptions.Direction).AsPagination(page ?? 1, 20);
#endregion
var viewModel = new PermitIndexViewModel
{
BuildingPermits = permitsPagedList,
GridSortOptions = gridSortOptions
};
return View(viewModel);
}
您建议我做些什么来提高显示速度?至少对于后续视图。我不知道AsPagination方法是如何工作的,但我们使用Skip和Take方法。 因此,在完成所有筛选后,您的代码可能如下所示:
var permitsPagedList = permits.OrderBy(gridSortOptions.Column, gridSortOptions.Direction).Skip(pageSize * (page -1)).Take(pageSize).ToList();
这个简单的方法只返回我们实际需要的行