C# 是否可以使用MVCContrib网格而不从服务公开IQueryable?
我不希望有一个返回IQueryable的方法,但我也希望在数据库中而不是内存中执行分页查询。 本文讨论如何通过IQueryable仅公开数据的一个子集 我修改了本文中描述的GetRange方法,如下所示C# 是否可以使用MVCContrib网格而不从服务公开IQueryable?,c#,asp.net-mvc,iqueryable,mvccontrib,C#,Asp.net Mvc,Iqueryable,Mvccontrib,我不希望有一个返回IQueryable的方法,但我也希望在数据库中而不是内存中执行分页查询。 本文讨论如何通过IQueryable仅公开数据的一个子集 我修改了本文中描述的GetRange方法,如下所示 public IEnumerable<T> GetRange<TKey>(int page, int pageSize, Expression<Func<T, TKey>> keySelector, bool ascending )
public IEnumerable<T> GetRange<TKey>(int page, int pageSize, Expression<Func<T, TKey>> keySelector, bool ascending )
{
IOrderedQueryable<T> sourceOrdered = null;
sourceOrdered = ascending ? source.OrderBy(keySelector) : source.OrderByDescending(keySelector);
return sourceOrdered.Skip((page - 1) * pageSize).Take(pageSize);
}
var productPagedList = productList.GetRange(page ?? 1, 10, p => p.SupplierID, false)
.AsPagination(page ?? 1, 10);
但是网格需要知道总记录数,以便正确呈现寻呼机。
有没有办法让MVCContrib网格以这种方式使用从服务层公开的IQueryable的子集?或者以某种方式将总记录数输入到它?还有其他的建议吗
谢谢