MT.EntityFrameworkCorePagination
1.0.1
dotnet add package MT.EntityFrameworkCorePagination --version 1.0.1
NuGet\Install-Package MT.EntityFrameworkCorePagination -Version 1.0.1
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="MT.EntityFrameworkCorePagination" Version="1.0.1" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="MT.EntityFrameworkCorePagination" Version="1.0.1" />
<PackageReference Include="MT.EntityFrameworkCorePagination" />
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add MT.EntityFrameworkCorePagination --version 1.0.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: MT.EntityFrameworkCorePagination, 1.0.1"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package MT.EntityFrameworkCorePagination@1.0.1
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=MT.EntityFrameworkCorePagination&version=1.0.1
#tool nuget:?package=MT.EntityFrameworkCorePagination&version=1.0.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
MT.EntityFrameworkCorePagination
MT.EntityFrameworkCorePagination is a lightweight and async pagination utility for Entity Framework Core.
It simplifies data pagination by adding a ToPagedListAsync()
extension method to IQueryable<T>
, returning a structured result that includes the current page, total pages, page size, item list, and first/last page indicators.
📦 Installation
Install the NuGet package:
dotnet add package MT.EntityFrameworkCorePagination --version 1.0.0
Usage
using MT.EntityFrameworkCorePagination.Pagination;
var pagedResult = await dbContext.Users
.Where(u => u.IsActive)
.ToPagedListAsync(pageNumber: 1, pageSize: 10);
// Access the result
var users = pagedResult.Items;
var totalPages = pagedResult.TotalPages;
var isFirst = pagedResult.IsFirstPage;
var isLast = pagedResult.IsLastPage;
Models
using System;
using System.Collections.Generic;
namespace MT.EntityFrameworkCorePagination.Pagination
{
public class PaginationResult<T>
{
public PaginationResult(IList<T> items, int pageNumber, int pageSize, int totalCount)
{
Items = items;
PageNumber = pageNumber;
PageSize = pageSize;
TotalPages = (int)Math.Ceiling(totalCount / (double)pageSize);
IsFirstPage = pageNumber == 1;
IsLastPage = pageNumber == TotalPages;
}
public int PageNumber { get; set; }
public int PageSize { get; set; }
public int TotalPages { get; set; }
public IList<T> Items { get; set; }
public bool IsFirstPage { get; set; }
public bool IsLastPage { get; set; }
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.EntityFrameworkCore;
namespace MT.EntityFrameworkCorePagination.Pagination
{
public static class PagedListQueryableExtensions
{
public static async Task<PaginationResult<T>> ToPagedListAsync<T>(
this IQueryable<T> source,
int pageNumber,
int pageSize)
{
var count = await source.CountAsync();
if (count > 0)
{
var items = await source
.Skip((pageNumber - 1) * pageSize)
.Take(pageSize)
.ToListAsync();
return new PaginationResult<T>(items, pageNumber, pageSize, count);
}
return new PaginationResult<T>(new List<T>(), 0, 0, 0);
}
}
}
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net8.0
- Microsoft.EntityFrameworkCore (>= 8.0.7)
-
net9.0
- Microsoft.EntityFrameworkCore (>= 9.0.7)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.