Efficient pagination using OFFSET-FETCH on SQL Server.
| ID | Name | Category | Price | Stock | Rating | Reviews | SKU |
|---|---|---|---|---|---|---|---|
| 9535 | Bulk Product d408d893 | Sports & Outdoors | $37.37 | 185 | ★ 3.9 | 45 | BULK-d12a9cf4 |
| 9536 | Bulk Product cf3d0c7e | Sports & Outdoors | $513.82 | 250 | ★ 3.5 | 37 | BULK-91203bfb |
| 9537 | Bulk Product 5f64cee3 | Clothing | $240.40 | 430 | ★ 1.2 | 17 | BULK-ccad1dd0 |
| 9538 | Bulk Product 4e4c3875 | Toys & Games | $322.48 | 219 | ★ 4.6 | 33 | BULK-78a82bfa |
| 9539 | Bulk Product 83289371 | Toys & Games | $992.38 | 295 | ★ 1.9 | 27 | BULK-fada6281 |
| 9540 | Bulk Product ef29588e | Sports & Outdoors | $41.05 | 374 | ★ 2.6 | 25 | BULK-28dc0d9f |
| 9541 | Bulk Product f324c6cf | Home & Garden | $544.03 | 99 | ★ 1.0 | 51 | BULK-f49751a5 |
| 9542 | Bulk Product 4689f975 | Books | $122.54 | 76 | ★ 2.9 | 69 | BULK-544203af |
| 9543 | Bulk Product 12c06e03 | Toys & Games | $70.32 | 6 | ★ 2.9 | 15 | BULK-b1b58529 |
| 9544 | Bulk Product 28f35626 | Clothing | $715.94 | 200 | ★ 2.0 | 27 | BULK-ac6ac2a6 |
| 9545 | Bulk Product c5e5e796 | Electronics | $244.94 | 234 | ★ 3.8 | 17 | BULK-90144b30 |
| 9546 | Bulk Product e9ca0fbf | Toys & Games | $511.99 | 313 | ★ 0.5 | 38 | BULK-90be0f5b |
| 9547 | Bulk Product 3a218c69 | Sports & Outdoors | $88.02 | 224 | ★ 2.9 | 82 | BULK-473544ce |
| 9548 | Bulk Product e7445a4b | Books | $550.24 | 125 | ★ 1.3 | 97 | BULK-def9a83b |
| 9549 | Bulk Product 35087bda | Toys & Games | $651.08 | 212 | ★ 4.1 | 89 | BULK-72eea28b |
| 9550 | Bulk Product 26d8aa90 | Clothing | $289.51 | 285 | ★ 2.7 | 47 | BULK-ac39c7b9 |
| 9551 | Bulk Product f2ed0eb8 | Home & Garden | $951.84 | 124 | ★ 1.5 | 65 | BULK-2136c8e9 |
| 9552 | Bulk Product b54d8c9a | Sports & Outdoors | $16.09 | 428 | ★ 4.7 | 40 | BULK-131f2096 |
| 9553 | Bulk Product 6f0297d0 | Sports & Outdoors | $559.22 | 430 | ★ 4.1 | 64 | BULK-6afc468b |
| 9554 | Bulk Product fc683abb | Home & Garden | $73.75 | 201 | ★ 3.5 | 32 | BULK-662b081e |
| 9555 | Bulk Product 3578cfb7 | Home & Garden | $985.62 | 170 | ★ 0.1 | 87 | BULK-c42f4148 |
| 9556 | Bulk Product 103eb758 | Toys & Games | $545.38 | 415 | ★ 4.2 | 19 | BULK-50a619ee |
| 9557 | Bulk Product 79dd15c3 | Books | $476.25 | 165 | ★ 4.5 | 62 | BULK-c7a6e166 |
| 9558 | Bulk Product f1f991dd | Home & Garden | $827.93 | 291 | ★ 0.1 | 38 | BULK-39fb5c8b |
| 9559 | Bulk Product 648d1281 | Toys & Games | $662.64 | 39 | ★ 1.9 | 18 | BULK-c5332d4f |
// Efficient pagination with Skip and Take
public async Task<PaginatedResult<DemoProduct>> GetPaginatedProductsAsync(int page, int pageSize)
{
// Get total count (cached if possible)
var totalCount = await _context.DemoProducts.CountAsync(p => p.IsActive);
// Get page of results
var items = await _context.DemoProducts
.Where(p => p.IsActive)
.OrderBy(p => p.Id) // Important: Must have ORDER BY for consistent paging
.Skip((page - 1) * pageSize) // OFFSET in SQL
.Take(pageSize) // FETCH NEXT in SQL
.AsNoTracking() // No tracking needed for read-only
.ToListAsync();
return new PaginatedResult<DemoProduct>
{
Items = items,
TotalCount = totalCount,
Page = page,
PageSize = pageSize
};
}