Efficient pagination using OFFSET-FETCH on SQL Server.
| ID | Name | Category | Price | Stock | Rating | Reviews | SKU |
|---|---|---|---|---|---|---|---|
| 9760 | Bulk Product 0ff7905d | Electronics | $649.14 | 155 | ★ 3.9 | 73 | BULK-05b185c7 |
| 9761 | Bulk Product 1bbeba5a | Electronics | $258.10 | 15 | ★ 0.6 | 39 | BULK-61571ae5 |
| 9762 | Bulk Product f2692769 | Electronics | $256.04 | 491 | ★ 4.5 | 28 | BULK-5dc8c3d3 |
| 9763 | Bulk Product d027db5d | Toys & Games | $348.52 | 431 | ★ 3.6 | 62 | BULK-06efdde3 |
| 9764 | Bulk Product 9d9ac6da | Toys & Games | $100.92 | 6 | ★ 1.1 | 61 | BULK-0f332b94 |
| 9765 | Bulk Product ac217105 | Books | $503.65 | 140 | ★ 3.7 | 31 | BULK-03228371 |
| 9766 | Bulk Product 5c62b26a | Home & Garden | $92.66 | 199 | ★ 1.5 | 50 | BULK-01c594e5 |
| 9767 | Bulk Product 969123dc | Clothing | $129.62 | 494 | ★ 2.4 | 95 | BULK-8d85f74d |
| 9768 | Bulk Product 5065c6a8 | Sports & Outdoors | $812.17 | 361 | ★ 1.8 | 73 | BULK-a64b7d3d |
| 9769 | Bulk Product 4ba84c3d | Sports & Outdoors | $571.93 | 207 | ★ 2.4 | 47 | BULK-38a969a7 |
| 9770 | Bulk Product bd99a64c | Electronics | $837.90 | 460 | ★ 1.6 | 23 | BULK-26203eae |
| 9771 | Bulk Product 9073dd6d | Books | $713.46 | 38 | ★ 0.5 | 79 | BULK-965dc645 |
| 9772 | Bulk Product d592d0b9 | Toys & Games | $605.16 | 339 | ★ 3.9 | 38 | BULK-1f2f094b |
| 9773 | Bulk Product 8da0b12e | Home & Garden | $239.17 | 135 | ★ 2.0 | 68 | BULK-9d9da534 |
| 9774 | Bulk Product 54f40e02 | Toys & Games | $95.48 | 435 | ★ 2.6 | 62 | BULK-3d726535 |
| 9775 | Bulk Product 96f36b01 | Home & Garden | $670.81 | 441 | ★ 2.7 | 21 | BULK-f9ad696e |
| 9776 | Bulk Product 8fa7a7f6 | Sports & Outdoors | $342.49 | 311 | ★ 4.0 | 52 | BULK-0777fe69 |
| 9777 | Bulk Product 1d4ba6e1 | Sports & Outdoors | $925.38 | 119 | ★ 2.2 | 23 | BULK-bf10bbfa |
| 9778 | Bulk Product d5cdabc0 | Toys & Games | $268.38 | 94 | ★ 0.2 | 27 | BULK-efe13dd6 |
| 9779 | Bulk Product 5b8fbc72 | Home & Garden | $746.09 | 468 | ★ 1.3 | 15 | BULK-488ffc64 |
| 9780 | Bulk Product b15b6635 | Clothing | $323.83 | 55 | ★ 1.7 | 49 | BULK-0698b224 |
| 9781 | Bulk Product 617c28b5 | Home & Garden | $787.10 | 61 | ★ 1.0 | 97 | BULK-d1c04806 |
| 9782 | Bulk Product 3dac87dc | Toys & Games | $911.48 | 408 | ★ 0.6 | 78 | BULK-3da84c3f |
| 9783 | Bulk Product 5d4e01ee | Books | $62.90 | 317 | ★ 4.9 | 84 | BULK-de9dae18 |
| 9784 | Bulk Product 57421890 | Sports & Outdoors | $938.85 | 470 | ★ 1.0 | 59 | BULK-0eacbf40 |
// 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
};
}