Efficient pagination using OFFSET-FETCH on SQL Server.
| ID | Name | Category | Price | Stock | Rating | Reviews | SKU |
|---|---|---|---|---|---|---|---|
| 24010 | Bulk Product 297da5e4 | Clothing | $13.19 | 248 | ★ 3.3 | 73 | BULK-da7a0dbf |
| 24011 | Bulk Product da91c214 | Sports & Outdoors | $945.35 | 172 | ★ 0.6 | 25 | BULK-dceb084a |
| 24012 | Bulk Product f533c3a9 | Sports & Outdoors | $488.72 | 320 | ★ 0.1 | 58 | BULK-ffff4884 |
| 24013 | Bulk Product c9795736 | Toys & Games | $605.08 | 130 | ★ 4.6 | 72 | BULK-7b453241 |
| 24014 | Bulk Product b60fd60a | Clothing | $678.37 | 303 | ★ 2.0 | 76 | BULK-add9ac84 |
| 24015 | Bulk Product 8bd6697b | Sports & Outdoors | $165.80 | 123 | ★ 0.6 | 43 | BULK-b598180e |
| 24016 | Bulk Product 28b78f2a | Toys & Games | $381.83 | 172 | ★ 0.0 | 94 | BULK-c0e3279a |
| 24017 | Bulk Product 0e8fab34 | Clothing | $982.05 | 431 | ★ 1.6 | 88 | BULK-1e9dc285 |
| 24018 | Bulk Product 6451f776 | Home & Garden | $410.58 | 3 | ★ 2.6 | 27 | BULK-6d637404 |
| 24019 | Bulk Product 6f0e30d0 | Home & Garden | $272.30 | 179 | ★ 1.2 | 68 | BULK-0d62a962 |
| 24020 | Bulk Product 7c6e9fed | Toys & Games | $712.69 | 330 | ★ 2.5 | 58 | BULK-c99938ee |
| 24021 | Bulk Product a534d1f9 | Books | $78.36 | 192 | ★ 4.7 | 97 | BULK-f15d4c8a |
| 24022 | Bulk Product f7134913 | Sports & Outdoors | $608.89 | 22 | ★ 3.0 | 23 | BULK-e1c59434 |
| 24023 | Bulk Product 53490b49 | Sports & Outdoors | $723.46 | 125 | ★ 1.6 | 99 | BULK-6018add3 |
| 24024 | Bulk Product 2e216196 | Toys & Games | $621.35 | 44 | ★ 4.6 | 65 | BULK-7c8ec69f |
| 24025 | Bulk Product d0355f2e | Sports & Outdoors | $326.65 | 142 | ★ 0.2 | 64 | BULK-b5e5bc12 |
| 24026 | Bulk Product cce9a0e9 | Sports & Outdoors | $651.00 | 130 | ★ 1.9 | 57 | BULK-18a508f3 |
| 24027 | Bulk Product 7c33f47b | Clothing | $638.70 | 193 | ★ 1.7 | 73 | BULK-7242d53b |
| 24028 | Bulk Product 7e8e1127 | Home & Garden | $810.64 | 120 | ★ 4.9 | 13 | BULK-7bf5d3a5 |
| 24029 | Bulk Product dfbaf768 | Electronics | $615.23 | 151 | ★ 4.7 | 96 | BULK-47b8284a |
| 24030 | Bulk Product 125c0999 | Electronics | $601.91 | 405 | ★ 2.2 | 95 | BULK-8d1a4c03 |
| 24031 | Bulk Product b44a4414 | Clothing | $754.42 | 140 | ★ 1.7 | 35 | BULK-ca52f0cb |
| 24032 | Bulk Product 477fc0d9 | Home & Garden | $657.18 | 110 | ★ 3.5 | 71 | BULK-8a4c5686 |
| 24033 | Bulk Product 05af5986 | Sports & Outdoors | $448.36 | 62 | ★ 4.2 | 8 | BULK-bfd08a24 |
| 24034 | Bulk Product f95d7e32 | Sports & Outdoors | $511.60 | 265 | ★ 4.9 | 23 | BULK-5f872df7 |
| 24035 | Bulk Product 547cdbd1 | Clothing | $931.66 | 478 | ★ 1.8 | 62 | BULK-47650ced |
| 24036 | Bulk Product dd1d9166 | Home & Garden | $460.93 | 21 | ★ 2.4 | 4 | BULK-af063190 |
| 24037 | Bulk Product 1488b477 | Toys & Games | $510.95 | 24 | ★ 0.9 | 33 | BULK-dda3c7d4 |
| 24038 | Bulk Product 8f9eddf2 | Home & Garden | $419.88 | 122 | ★ 0.5 | 81 | BULK-dcd2a88e |
| 24039 | Bulk Product ad56fab8 | Clothing | $918.25 | 260 | ★ 0.4 | 7 | BULK-dcc1743f |
| 24040 | Bulk Product 2f8b9bbc | Clothing | $482.65 | 72 | ★ 4.5 | 48 | BULK-0eb5f4cc |
| 24041 | Bulk Product 4d2551ff | Electronics | $964.35 | 204 | ★ 3.4 | 55 | BULK-8e3af9c5 |
| 24042 | Bulk Product 2f6fd52e | Toys & Games | $109.49 | 318 | ★ 4.2 | 61 | BULK-72ca7cd2 |
| 24043 | Bulk Product 78064d5e | Sports & Outdoors | $848.16 | 361 | ★ 3.7 | 44 | BULK-fd898395 |
| 24044 | Bulk Product fd5452b2 | Books | $176.78 | 116 | ★ 5.0 | 27 | BULK-55d60f09 |
| 24045 | Bulk Product d5dc28bc | Books | $123.98 | 495 | ★ 2.9 | 57 | BULK-b3c236b7 |
| 24046 | Bulk Product 1e68cb78 | Home & Garden | $938.16 | 388 | ★ 1.8 | 32 | BULK-2f34a484 |
| 24047 | Bulk Product 2513e4e8 | Electronics | $212.64 | 426 | ★ 1.8 | 45 | BULK-9733c4bd |
| 24048 | Bulk Product ae25bb25 | Electronics | $513.01 | 168 | ★ 4.7 | 95 | BULK-9e9c1fc3 |
| 24049 | Bulk Product 2902ecbf | Sports & Outdoors | $1,008.69 | 13 | ★ 4.0 | 17 | BULK-ac22a9da |
| 24050 | Bulk Product ee82c1a4 | Sports & Outdoors | $729.75 | 433 | ★ 4.3 | 14 | BULK-3f5276be |
| 24051 | Bulk Product 34da4dd3 | Toys & Games | $831.26 | 365 | ★ 2.9 | 1 | BULK-d91a2013 |
| 24052 | Bulk Product 1f3285ad | Clothing | $847.66 | 255 | ★ 2.0 | 78 | BULK-7ab8155a |
| 24053 | Bulk Product 16e638da | Books | $910.98 | 472 | ★ 0.1 | 65 | BULK-82488bb9 |
| 24054 | Bulk Product d0d149aa | Sports & Outdoors | $481.73 | 18 | ★ 3.4 | 78 | BULK-b1650ac8 |
| 24055 | Bulk Product 3ccaee98 | Books | $474.91 | 386 | ★ 1.5 | 98 | BULK-d728db2a |
| 24056 | Bulk Product 96e20169 | Books | $72.26 | 408 | ★ 0.6 | 77 | BULK-4103131c |
| 24057 | Bulk Product 8d8a634b | Electronics | $833.32 | 438 | ★ 0.3 | 9 | BULK-576976a1 |
| 24058 | Bulk Product fad56c23 | Electronics | $152.52 | 46 | ★ 4.0 | 70 | BULK-8d42c351 |
| 24059 | Bulk Product 391825d2 | Home & Garden | $930.34 | 302 | ★ 1.0 | 91 | BULK-549c7de9 |
// 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
};
}