Efficient pagination using OFFSET-FETCH on SQL Server.
| ID | Name | Category | Price | Stock | Rating | Reviews | SKU |
|---|---|---|---|---|---|---|---|
| 17510 | Bulk Product 2e0a6e7a | Electronics | $728.37 | 38 | ★ 1.5 | 1 | BULK-08263b18 |
| 17511 | Bulk Product b1527bb9 | Sports & Outdoors | $504.46 | 165 | ★ 2.5 | 37 | BULK-dedd37c4 |
| 17512 | Bulk Product 04658b50 | Books | $904.46 | 408 | ★ 4.8 | 10 | BULK-9cf1ec9c |
| 17513 | Bulk Product 5bb6436f | Toys & Games | $787.62 | 240 | ★ 4.5 | 5 | BULK-2e51b76a |
| 17514 | Bulk Product afa7012a | Toys & Games | $820.75 | 455 | ★ 1.1 | 57 | BULK-817a9982 |
| 17515 | Bulk Product 80d978e0 | Sports & Outdoors | $510.23 | 460 | ★ 1.0 | 8 | BULK-21be3bb6 |
| 17516 | Bulk Product 54e062e9 | Home & Garden | $524.11 | 230 | ★ 3.8 | 7 | BULK-6a5e3c2b |
| 17517 | Bulk Product 408adabc | Clothing | $129.30 | 71 | ★ 1.2 | 97 | BULK-3ac49347 |
| 17518 | Bulk Product 4676395d | Electronics | $787.36 | 445 | ★ 3.7 | 46 | BULK-afbb25ab |
| 17519 | Bulk Product a9439bb1 | Sports & Outdoors | $397.29 | 389 | ★ 0.1 | 37 | BULK-45633940 |
| 17520 | Bulk Product 49813e75 | Clothing | $508.29 | 386 | ★ 4.3 | 70 | BULK-acff53fd |
| 17521 | Bulk Product 0996c0e0 | Books | $897.14 | 256 | ★ 2.5 | 22 | BULK-edaef024 |
| 17522 | Bulk Product 1c79a29c | Sports & Outdoors | $900.58 | 166 | ★ 3.2 | 13 | BULK-1dce1311 |
| 17523 | Bulk Product 338c49ce | Electronics | $630.39 | 27 | ★ 2.4 | 67 | BULK-3d78bdba |
| 17524 | Bulk Product df7b04bf | Home & Garden | $369.72 | 128 | ★ 4.9 | 39 | BULK-fb2c7f94 |
| 17525 | Bulk Product 6b08f8a2 | Books | $570.46 | 116 | ★ 3.7 | 62 | BULK-e519c868 |
| 17526 | Bulk Product d9966e08 | Electronics | $971.48 | 5 | ★ 3.1 | 39 | BULK-1fb1ec6a |
| 17527 | Bulk Product 3a6758e7 | Clothing | $932.02 | 244 | ★ 4.7 | 6 | BULK-85a2e732 |
| 17528 | Bulk Product f4fb3153 | Books | $960.37 | 386 | ★ 3.4 | 36 | BULK-45641243 |
| 17529 | Bulk Product a619f205 | Home & Garden | $900.56 | 368 | ★ 0.2 | 37 | BULK-6df11652 |
| 17530 | Bulk Product 8f7275ff | Clothing | $820.08 | 308 | ★ 1.7 | 71 | BULK-b3e5144c |
| 17531 | Bulk Product 72457320 | Toys & Games | $708.38 | 122 | ★ 3.5 | 36 | BULK-471592bc |
| 17532 | Bulk Product ab00243d | Electronics | $623.36 | 252 | ★ 3.4 | 79 | BULK-f191e652 |
| 17533 | Bulk Product b7576253 | Home & Garden | $736.12 | 62 | ★ 4.1 | 4 | BULK-0372b6ff |
| 17534 | Bulk Product 13a4d786 | Home & Garden | $874.93 | 351 | ★ 0.1 | 15 | BULK-9c60dca0 |
| 17535 | Bulk Product 1f2fbbc9 | Toys & Games | $625.12 | 140 | ★ 0.7 | 21 | BULK-effb0bbc |
| 17536 | Bulk Product e8d528c2 | Books | $136.96 | 346 | ★ 1.7 | 9 | BULK-5418ab3d |
| 17537 | Bulk Product 363f5052 | Clothing | $842.80 | 220 | ★ 0.3 | 54 | BULK-8f6e6a68 |
| 17538 | Bulk Product 04a51a1e | Books | $670.09 | 280 | ★ 0.8 | 78 | BULK-334d439d |
| 17539 | Bulk Product 2103ad77 | Home & Garden | $718.10 | 208 | ★ 0.5 | 36 | BULK-0d4e9de6 |
| 17540 | Bulk Product 7c851ce3 | Clothing | $660.38 | 431 | ★ 4.8 | 27 | BULK-beb99481 |
| 17541 | Bulk Product e05aece3 | Toys & Games | $81.55 | 425 | ★ 4.0 | 55 | BULK-08c2105a |
| 17542 | Bulk Product 21768623 | Sports & Outdoors | $81.71 | 285 | ★ 3.2 | 51 | BULK-d0cd3fda |
| 17543 | Bulk Product aab8036c | Home & Garden | $804.44 | 222 | ★ 2.1 | 47 | BULK-4c673450 |
| 17544 | Bulk Product 598fac96 | Books | $18.01 | 148 | ★ 2.2 | 85 | BULK-6a093515 |
| 17545 | Bulk Product 2667d557 | Sports & Outdoors | $749.25 | 333 | ★ 2.1 | 26 | BULK-fe987008 |
| 17546 | Bulk Product 79ed301c | Books | $379.92 | 361 | ★ 2.5 | 9 | BULK-d308a0d9 |
| 17547 | Bulk Product 4ac80f61 | Electronics | $716.68 | 262 | ★ 1.0 | 45 | BULK-bf03dc67 |
| 17548 | Bulk Product 741fed8f | Books | $188.57 | 299 | ★ 0.7 | 26 | BULK-78caaa4d |
| 17549 | Bulk Product ed6117b9 | Electronics | $265.73 | 39 | ★ 0.1 | 60 | BULK-907caa4c |
| 17550 | Bulk Product 58ec7d6e | Electronics | $603.92 | 212 | ★ 3.4 | 83 | BULK-d777f7bb |
| 17551 | Bulk Product f528a528 | Sports & Outdoors | $285.39 | 286 | ★ 4.5 | 70 | BULK-19f0c16f |
| 17552 | Bulk Product 79a82e00 | Toys & Games | $430.67 | 149 | ★ 3.6 | 33 | BULK-81a3d947 |
| 17553 | Bulk Product 9fe21fdf | Toys & Games | $400.38 | 344 | ★ 1.5 | 56 | BULK-8e7002d7 |
| 17554 | Bulk Product 955888bf | Clothing | $786.44 | 80 | ★ 0.3 | 14 | BULK-451407f7 |
| 17555 | Bulk Product e9057b3d | Home & Garden | $40.55 | 111 | ★ 0.7 | 86 | BULK-1c38ae62 |
| 17556 | Bulk Product 94934f27 | Toys & Games | $607.94 | 378 | ★ 1.6 | 95 | BULK-4184a255 |
| 17557 | Bulk Product ace05767 | Electronics | $829.38 | 421 | ★ 4.1 | 22 | BULK-58c0513e |
| 17558 | Bulk Product 6c26fa18 | Books | $598.31 | 299 | ★ 2.1 | 63 | BULK-3e744aa3 |
| 17559 | Bulk Product 8c86f71d | Electronics | $529.69 | 77 | ★ 4.8 | 2 | BULK-ff6d4bb9 |
// 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
};
}