EricksonLopez.Pagination.Cosmos
2.0.0
dotnet add package EricksonLopez.Pagination.Cosmos --version 2.0.0
NuGet\Install-Package EricksonLopez.Pagination.Cosmos -Version 2.0.0
<PackageReference Include="EricksonLopez.Pagination.Cosmos" Version="2.0.0" />
<PackageVersion Include="EricksonLopez.Pagination.Cosmos" Version="2.0.0" />
<PackageReference Include="EricksonLopez.Pagination.Cosmos" />
paket add EricksonLopez.Pagination.Cosmos --version 2.0.0
#r "nuget: EricksonLopez.Pagination.Cosmos, 2.0.0"
#:package EricksonLopez.Pagination.Cosmos@2.0.0
#addin nuget:?package=EricksonLopez.Pagination.Cosmos&version=2.0.0
#tool nuget:?package=EricksonLopez.Pagination.Cosmos&version=2.0.0
EricksonLopez.Pagination.Cosmos
Cosmos DB cursor pagination extensions for the EricksonLopez.Pagination ecosystem.
Overview
This package extends the Container class from Microsoft.Azure.Cosmos to natively support cursor pagination. It leverages the Cosmos SDK's built-in ContinuationToken mechanism to provide efficient, index-backed cursor pagination.
Installation
<PackageReference Include="EricksonLopez.Pagination.Cosmos" Version="2.0.0" />
Usage
Use the ToCursorPagedListAsync extension method on your Cosmos Container.
using EricksonLopez.Pagination.Cosmos;
// 1. Define your query
var query = new QueryDefinition("SELECT * FROM c WHERE c.partitionKey = 'users'");
// 2. Define parameters (usually mapped from an API request)
var parameters = new CursorPaginationParameters
{
First = 10,
After = "..." // Cursor from the previous page
};
// 3. Paginate
var pagedList = await container.ToCursorPagedListAsync<User>(query, parameters);
// pagedList.Items contains the results
// pagedList.EndCursor contains the token for the next page
Limitations
Backward Pagination is NOT supported.
Cosmos DB's ContinuationToken only allows moving forward through a result set. Because of this architectural limitation of Cosmos DB, passing a Last or Before parameter to ToCursorPagedListAsync will throw a NotSupportedException.
Cursor Format
The cursor (EndCursor) returned by this package is an opaque, Base64-encoded wrapper around the native Cosmos DB continuation token. When passed back in the After parameter, it is safely decoded and passed to the Cosmos DB SDK.
| 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 is compatible. 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. |
-
net10.0
- EricksonLopez.Pagination (>= 2.0.0)
- Microsoft.Azure.Cosmos (>= 3.63.1)
-
net8.0
- EricksonLopez.Pagination (>= 2.0.0)
- Microsoft.Azure.Cosmos (>= 3.63.1)
-
net9.0
- EricksonLopez.Pagination (>= 2.0.0)
- Microsoft.Azure.Cosmos (>= 3.63.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 2.0.0 | 93 | 9/21/2026 |
| 0.0.0-alpha.0 | 80 | 8/25/2026 |