Efficient pagination using OFFSET-FETCH on SQL Server.
| ID | Name | Category | Price | Stock | Rating | Reviews | SKU |
|---|---|---|---|---|---|---|---|
| 12010 | Bulk Product e5bf035a | Home & Garden | $93.74 | 295 | ★ 2.7 | 29 | BULK-39e14373 |
| 12011 | Bulk Product b71e51b7 | Books | $630.94 | 362 | ★ 2.1 | 95 | BULK-f8a4945d |
| 12012 | Bulk Product d9f30ce2 | Toys & Games | $108.69 | 269 | ★ 4.7 | 94 | BULK-a4f90c0f |
| 12013 | Bulk Product 53e5a1cb | Sports & Outdoors | $262.19 | 108 | ★ 3.8 | 61 | BULK-0dc5d3d8 |
| 12014 | Bulk Product 991b6895 | Clothing | $203.65 | 84 | ★ 0.3 | 77 | BULK-ba625599 |
| 12015 | Bulk Product d1f8c8a7 | Electronics | $644.82 | 29 | ★ 2.9 | 89 | BULK-b6b3ba36 |
| 12016 | Bulk Product 21c2e459 | Toys & Games | $453.98 | 489 | ★ 0.8 | 91 | BULK-debccab0 |
| 12017 | Bulk Product d3e60bc5 | Electronics | $135.70 | 338 | ★ 1.4 | 75 | BULK-a8acedda |
| 12018 | Bulk Product 754d8e7b | Sports & Outdoors | $275.62 | 432 | ★ 3.7 | 3 | BULK-d92fc3ee |
| 12019 | Bulk Product 532fccb3 | Sports & Outdoors | $469.90 | 355 | ★ 2.6 | 4 | BULK-6e090ab9 |
| 12020 | Bulk Product dde65052 | Electronics | $862.46 | 483 | ★ 0.8 | 95 | BULK-5fb629e2 |
| 12021 | Bulk Product a4e6890e | Home & Garden | $998.58 | 409 | ★ 4.9 | 32 | BULK-8342f434 |
| 12022 | Bulk Product fecc2c44 | Sports & Outdoors | $988.98 | 293 | ★ 0.8 | 50 | BULK-91001263 |
| 12023 | Bulk Product 157488f8 | Clothing | $614.71 | 67 | ★ 3.5 | 79 | BULK-83ace3a0 |
| 12024 | Bulk Product 454cbd39 | Electronics | $992.06 | 177 | ★ 2.4 | 11 | BULK-b1197d02 |
| 12025 | Bulk Product fbe20157 | Clothing | $134.56 | 305 | ★ 3.4 | 89 | BULK-171ed4d7 |
| 12026 | Bulk Product 47b4b7d0 | Sports & Outdoors | $448.44 | 46 | ★ 4.6 | 55 | BULK-2dcbbe5c |
| 12027 | Bulk Product 3b3be6c7 | Electronics | $133.56 | 255 | ★ 2.8 | 79 | BULK-501931ca |
| 12028 | Bulk Product 17bf134b | Home & Garden | $488.49 | 253 | ★ 3.7 | 96 | BULK-77fe176e |
| 12029 | Bulk Product 86657c1e | Toys & Games | $530.46 | 42 | ★ 3.4 | 50 | BULK-321c4c15 |
| 12030 | Bulk Product 9374ab3c | Clothing | $301.99 | 195 | ★ 2.1 | 37 | BULK-6f179735 |
| 12031 | Bulk Product bb448a03 | Toys & Games | $874.05 | 88 | ★ 3.3 | 71 | BULK-ce1d33e8 |
| 12032 | Bulk Product 0d29ee54 | Home & Garden | $157.06 | 1 | ★ 4.5 | 6 | BULK-c007f64c |
| 12033 | Bulk Product a9ce5e30 | Electronics | $42.78 | 205 | ★ 3.8 | 40 | BULK-854002be |
| 12034 | Bulk Product 37a8a9f6 | Electronics | $958.29 | 463 | ★ 1.5 | 45 | BULK-7cf69fdd |
| 12035 | Bulk Product 0f279729 | Electronics | $88.39 | 202 | ★ 2.9 | 45 | BULK-d5324c6d |
| 12036 | Bulk Product 1146c662 | Sports & Outdoors | $230.08 | 342 | ★ 2.7 | 58 | BULK-e7ee818f |
| 12037 | Bulk Product 67c796a6 | Electronics | $18.12 | 145 | ★ 3.8 | 11 | BULK-5a4db793 |
| 12038 | Bulk Product ba38e1ad | Sports & Outdoors | $359.39 | 202 | ★ 0.9 | 41 | BULK-f99b666d |
| 12039 | Bulk Product 54eee4d4 | Sports & Outdoors | $253.83 | 165 | ★ 3.0 | 96 | BULK-04732806 |
| 12040 | Bulk Product 9f3df142 | Sports & Outdoors | $105.07 | 94 | ★ 1.1 | 14 | BULK-5448da65 |
| 12041 | Bulk Product b051d687 | Toys & Games | $854.92 | 437 | ★ 4.5 | 36 | BULK-e69a4ae5 |
| 12042 | Bulk Product 559ddae3 | Books | $315.62 | 175 | ★ 0.3 | 44 | BULK-65d865e4 |
| 12043 | Bulk Product bbf4853d | Home & Garden | $357.90 | 467 | ★ 0.7 | 92 | BULK-bc2ad907 |
| 12044 | Bulk Product 3ffa665f | Books | $770.54 | 307 | ★ 4.4 | 72 | BULK-ec7cc0ee |
| 12045 | Bulk Product 8bba479f | Sports & Outdoors | $670.26 | 376 | ★ 1.6 | 20 | BULK-d1ccb85a |
| 12046 | Bulk Product cbf4bd21 | Clothing | $978.06 | 391 | ★ 3.7 | 44 | BULK-3dd1e4d0 |
| 12047 | Bulk Product afeb7025 | Clothing | $621.34 | 103 | ★ 2.1 | 25 | BULK-af622945 |
| 12048 | Bulk Product f7290973 | Books | $972.52 | 195 | ★ 1.5 | 38 | BULK-50e986fb |
| 12049 | Bulk Product 6cb0db92 | Home & Garden | $54.95 | 91 | ★ 4.6 | 9 | BULK-8f857cd9 |
| 12050 | Bulk Product 30bb8dfe | Toys & Games | $14.11 | 43 | ★ 1.9 | 24 | BULK-294ceb44 |
| 12051 | Bulk Product 3553915a | Toys & Games | $323.76 | 181 | ★ 1.2 | 21 | BULK-54b68b54 |
| 12052 | Bulk Product 6edb6055 | Electronics | $704.26 | 131 | ★ 3.2 | 99 | BULK-65bcb224 |
| 12053 | Bulk Product a32ae2d2 | Toys & Games | $448.41 | 360 | ★ 4.6 | 36 | BULK-caeae80c |
| 12054 | Bulk Product f726ea28 | Toys & Games | $889.31 | 194 | ★ 0.4 | 86 | BULK-818b99af |
| 12055 | Bulk Product 6dedf1da | Sports & Outdoors | $968.96 | 163 | ★ 3.7 | 79 | BULK-31bb2389 |
| 12056 | Bulk Product b954033a | Books | $30.68 | 326 | ★ 2.7 | 30 | BULK-ac90f5b4 |
| 12057 | Bulk Product 05245e92 | Clothing | $289.84 | 186 | ★ 4.4 | 50 | BULK-97fd9389 |
| 12058 | Bulk Product f37335cf | Electronics | $561.42 | 471 | ★ 2.7 | 59 | BULK-b6a1c303 |
| 12059 | Bulk Product 5baf15a9 | Clothing | $42.91 | 385 | ★ 1.8 | 32 | BULK-5c769de2 |
// 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
};
}