Function: PaginateQueryable<T>
Purpose: Efficiently paginate data retrieved from IQueryable sources, particularly useful for database queries with Entity Framework or LINQ to SQL.
Parameters:
data
(IQueryable): The data source to paginate.
pageNumber
(int): The current page number (1-based index).
pageSize
(int): Number of items per page.
Return Value: A PaginationResult<T>
with:
Items
: List of data elements for the specified page.
PageNumber
: Current page number.
TotalPages
: Total pages required.
TotalCount
: Total items in the dataset.
HasPreviousPage
: True if a previous page exists.
HasNextPage
: True if a next page exists.
Usage: Include the function, create an IQueryable query, call PaginateQueryable
, and access the result for efficient pagination.
Example:
IQueryable<MyEntity> query = dbContext.MyEntities.Where(e => e.IsActive);
int pageNumber = 2;
int pageSize = 10;
var paginatedList = await query.PaginateQueryable(pageNumber, pageSize,cancellationToken);
Performance: Optimizes data retrieval by minimizing database queries for large datasets.
Contributions: Contributions welcome.
Contact: [Sourav Das] at [sourav99166@gmail.com].