事实上,你正在做一个ToList()
,所以查询将被执行,并且延迟执行将不再被延迟。
你可以不ToList()
调用就尝试,但这一切都取决于ToPagedList(int, int)
方法的实现。
你可以自己做分页。
const int pageSize = 25;
const int pageNumber = 1;
IQueryable<Product> query = _dbContext.Products;
var pagedQuery = query.Skip(pageSize * (pageNumber - 1)).Take(pageSize).ToList();
是的,您可以将这个逻辑隐藏在IQueryable<T>
.
public static class IQueryableExtensions {
public static IQueryable<T> ToPagedQuery<T>(this IQueryable<T> query, int pageSize, int pageNumber) {
return query.Skip(pageSize * (pageNumber - 1)).Take(pageSize);
}
}