如何使用 Take 和 Skip 方法从数据库 table 中获取所有条目?
How to get all entries from the database table using Take and Skip methods?
在我们当前的应用程序中,我们在数据层中具有以下功能:
public IEnumerable<User> GetUsers(IPagedAndFilteredAndSortedRequest request)
{
var users = dbContext.Users;
//1) "filteredAndSorted" is a result of applying filters and sorts on users
//2) "filteredAndSorted" is OrderedQueriable
//3) "rows" is number of rows to skip based on request.PageSize and request.PageNumber
var result = filteredAndSorted.Skip(rows).Take(request.PageSize);
return result.ToArray();
}
并且我们需要使用此方法从数据库中获取所有个用户。所以,问题是:
- 将 1 作为 pageNumber 传递,将 Int32.MaxValue 作为 pageSize 传递是个好主意吗?
- MSSQL 数据库中的最大行数是多少table?
Is it a good idea to pass 1 as pageNumber and Int32.MaxValue as pageSize?
不是真的。最好在 request
中再添加一个 属性,比如
var result = filteredAndSorted;
if (request.UsePaging)
{
result = filteredAndSorted.Skip(rows).Take(request.PageSize);
}
return result.ToArray();
或使用 request.PageSize
< 1 关闭分页。
在我们当前的应用程序中,我们在数据层中具有以下功能:
public IEnumerable<User> GetUsers(IPagedAndFilteredAndSortedRequest request)
{
var users = dbContext.Users;
//1) "filteredAndSorted" is a result of applying filters and sorts on users
//2) "filteredAndSorted" is OrderedQueriable
//3) "rows" is number of rows to skip based on request.PageSize and request.PageNumber
var result = filteredAndSorted.Skip(rows).Take(request.PageSize);
return result.ToArray();
}
并且我们需要使用此方法从数据库中获取所有个用户。所以,问题是:
- 将 1 作为 pageNumber 传递,将 Int32.MaxValue 作为 pageSize 传递是个好主意吗?
- MSSQL 数据库中的最大行数是多少table?
Is it a good idea to pass 1 as pageNumber and Int32.MaxValue as pageSize?
不是真的。最好在 request
中再添加一个 属性,比如
var result = filteredAndSorted;
if (request.UsePaging)
{
result = filteredAndSorted.Skip(rows).Take(request.PageSize);
}
return result.ToArray();
或使用 request.PageSize
< 1 关闭分页。