Efficient pagination using OFFSET-FETCH on SQL Server.
| ID | Name | Category | Price | Stock | Rating | Reviews | SKU |
|---|---|---|---|---|---|---|---|
| 19610 | Bulk Product b4745301 | Books | $929.38 | 390 | ★ 2.6 | 86 | BULK-40be64d6 |
| 19611 | Bulk Product 83f44a6f | Electronics | $732.11 | 477 | ★ 1.5 | 36 | BULK-35c6427c |
| 19612 | Bulk Product 9262a80c | Books | $332.28 | 140 | ★ 0.1 | 34 | BULK-65095378 |
| 19613 | Bulk Product 8925868c | Books | $89.46 | 141 | ★ 2.3 | 64 | BULK-22ed8d2e |
| 19614 | Bulk Product b6e9cea6 | Clothing | $527.27 | 53 | ★ 1.0 | 41 | BULK-ea5606c7 |
| 19615 | Bulk Product 4ab791d2 | Sports & Outdoors | $613.55 | 67 | ★ 3.2 | 20 | BULK-89c24113 |
| 19616 | Bulk Product 9a8c7fa5 | Home & Garden | $514.21 | 353 | ★ 1.3 | 79 | BULK-7dfb686e |
| 19617 | Bulk Product 8c198c52 | Sports & Outdoors | $627.39 | 286 | ★ 4.5 | 27 | BULK-3c5e0871 |
| 19618 | Bulk Product 371c8ff4 | Home & Garden | $262.30 | 25 | ★ 0.8 | 37 | BULK-d2dcacbc |
| 19619 | Bulk Product ef561bce | Sports & Outdoors | $262.65 | 371 | ★ 3.0 | 66 | BULK-11ec2858 |
| 19620 | Bulk Product c0cccbb5 | Sports & Outdoors | $519.00 | 327 | ★ 2.3 | 61 | BULK-d9cf66dd |
| 19621 | Bulk Product a3db75cc | Clothing | $332.63 | 148 | ★ 3.3 | 29 | BULK-2ffba998 |
| 19622 | Bulk Product 78fc0bdf | Books | $695.69 | 102 | ★ 3.0 | 66 | BULK-a806ddaa |
| 19623 | Bulk Product 33ce3350 | Home & Garden | $926.83 | 258 | ★ 4.4 | 98 | BULK-a41c9485 |
| 19624 | Bulk Product 6f3fe956 | Home & Garden | $48.97 | 250 | ★ 2.6 | 5 | BULK-c4ff221f |
| 19625 | Bulk Product eb7821b0 | Electronics | $866.56 | 263 | ★ 2.7 | 90 | BULK-a43a8cce |
| 19626 | Bulk Product 96a101ab | Clothing | $775.05 | 482 | ★ 4.0 | 62 | BULK-4eeb6e62 |
| 19627 | Bulk Product 295cb2f4 | Toys & Games | $169.94 | 451 | ★ 4.7 | 19 | BULK-fe973d7a |
| 19628 | Bulk Product cd7312c6 | Books | $640.13 | 367 | ★ 1.1 | 96 | BULK-8656a4e5 |
| 19629 | Bulk Product 2d348395 | Toys & Games | $261.80 | 484 | ★ 2.4 | 17 | BULK-47e97017 |
| 19630 | Bulk Product 14b971ed | Home & Garden | $841.82 | 362 | ★ 2.0 | 48 | BULK-d6f107ed |
| 19631 | Bulk Product c324a301 | Electronics | $557.42 | 139 | ★ 0.4 | 76 | BULK-c45270ef |
| 19632 | Bulk Product db4cffb4 | Home & Garden | $219.10 | 272 | ★ 1.7 | 28 | BULK-b33c20d9 |
| 19633 | Bulk Product 1137e6f3 | Clothing | $420.60 | 224 | ★ 4.6 | 29 | BULK-a055cddf |
| 19634 | Bulk Product 4f9fdf1e | Books | $752.73 | 252 | ★ 4.4 | 59 | BULK-9c61a790 |
| 19635 | Bulk Product 98cad1af | Sports & Outdoors | $847.72 | 322 | ★ 1.6 | 40 | BULK-085b4dc1 |
| 19636 | Bulk Product 913253c0 | Toys & Games | $298.54 | 139 | ★ 3.7 | 21 | BULK-8b7a2a67 |
| 19637 | Bulk Product 2da9110d | Toys & Games | $289.87 | 276 | ★ 3.9 | 77 | BULK-c9103d0d |
| 19638 | Bulk Product aef30944 | Electronics | $949.31 | 32 | ★ 0.4 | 33 | BULK-18fc86dd |
| 19639 | Bulk Product 78bda910 | Books | $982.76 | 241 | ★ 4.7 | 2 | BULK-951b08a2 |
| 19640 | Bulk Product b6e9a78d | Electronics | $705.51 | 144 | ★ 0.0 | 75 | BULK-37f7c4ec |
| 19641 | Bulk Product e678451b | Home & Garden | $119.00 | 200 | ★ 2.2 | 4 | BULK-93769230 |
| 19642 | Bulk Product 66d50632 | Clothing | $143.75 | 259 | ★ 0.7 | 93 | BULK-2a40c977 |
| 19643 | Bulk Product 0a1ac21b | Sports & Outdoors | $114.41 | 379 | ★ 1.3 | 2 | BULK-a4257f69 |
| 19644 | Bulk Product e589a825 | Electronics | $595.11 | 35 | ★ 1.0 | 84 | BULK-1a4fc918 |
| 19645 | Bulk Product b0fae76e | Electronics | $195.74 | 405 | ★ 4.4 | 18 | BULK-ef97a2bc |
| 19646 | Bulk Product 3d2e4413 | Home & Garden | $406.79 | 125 | ★ 4.4 | 48 | BULK-e9f3cc85 |
| 19647 | Bulk Product 3c842548 | Toys & Games | $916.05 | 135 | ★ 2.4 | 77 | BULK-5258d4e5 |
| 19648 | Bulk Product 948b3427 | Toys & Games | $701.48 | 54 | ★ 4.8 | 44 | BULK-b4192910 |
| 19649 | Bulk Product d0c96f1a | Toys & Games | $681.16 | 216 | ★ 4.9 | 86 | BULK-ea491ce7 |
| 19650 | Bulk Product 04d4a68c | Electronics | $425.25 | 422 | ★ 3.5 | 14 | BULK-d86bd9a2 |
| 19651 | Bulk Product af55c0e8 | Toys & Games | $163.13 | 276 | ★ 3.8 | 87 | BULK-e6bd9dce |
| 19652 | Bulk Product 83c8abc6 | Sports & Outdoors | $234.15 | 198 | ★ 3.8 | 68 | BULK-007eb5a9 |
| 19653 | Bulk Product 248af907 | Home & Garden | $358.92 | 439 | ★ 3.0 | 92 | BULK-4ae6ee86 |
| 19654 | Bulk Product 1664aebb | Toys & Games | $28.45 | 131 | ★ 4.9 | 72 | BULK-8a637d4e |
| 19655 | Bulk Product 25b2781c | Home & Garden | $461.73 | 224 | ★ 3.0 | 20 | BULK-4da3bff3 |
| 19656 | Bulk Product 433a8777 | Books | $498.59 | 341 | ★ 4.9 | 47 | BULK-1057c1c5 |
| 19657 | Bulk Product 67d254ad | Sports & Outdoors | $1,008.48 | 331 | ★ 2.3 | 93 | BULK-051a9246 |
| 19658 | Bulk Product e8f03384 | Clothing | $24.46 | 38 | ★ 2.1 | 96 | BULK-5a4767ad |
| 19659 | Bulk Product 4ce80976 | Sports & Outdoors | $324.69 | 280 | ★ 0.8 | 27 | BULK-ad541a52 |
// 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
};
}