Efficient pagination using OFFSET-FETCH on SQL Server.
| ID | Name | Category | Price | Stock | Rating | Reviews | SKU |
|---|---|---|---|---|---|---|---|
| 6360 | Bulk Product 625c2368 | Clothing | $641.30 | 102 | ★ 2.6 | 75 | BULK-08b2952d |
| 6361 | Bulk Product fea80663 | Electronics | $344.75 | 85 | ★ 4.5 | 16 | BULK-876aaecb |
| 6362 | Bulk Product 2cfe0a80 | Toys & Games | $303.97 | 210 | ★ 4.1 | 78 | BULK-fe84732a |
| 6363 | Bulk Product 32d6a9ad | Clothing | $845.29 | 328 | ★ 1.0 | 43 | BULK-c4f8e5e4 |
| 6364 | Bulk Product 2dc59172 | Sports & Outdoors | $394.22 | 388 | ★ 0.7 | 48 | BULK-f7f61fdc |
| 6365 | Bulk Product 14747eed | Books | $301.00 | 69 | ★ 3.9 | 27 | BULK-ca2fffc0 |
| 6366 | Bulk Product a371e2a4 | Electronics | $507.04 | 141 | ★ 0.0 | 49 | BULK-46b97723 |
| 6367 | Bulk Product fb939757 | Books | $194.01 | 129 | ★ 1.1 | 30 | BULK-c0065a1c |
| 6368 | Bulk Product 1d82fe25 | Clothing | $967.64 | 395 | ★ 4.0 | 70 | BULK-f7dbb5e2 |
| 6369 | Bulk Product eff32515 | Books | $756.70 | 13 | ★ 0.3 | 10 | BULK-4d876b25 |
| 6370 | Bulk Product 35ce77fd | Toys & Games | $601.48 | 300 | ★ 1.2 | 67 | BULK-f0ef9f92 |
| 6371 | Bulk Product e182073f | Books | $976.39 | 142 | ★ 2.4 | 10 | BULK-5a34c928 |
| 6372 | Bulk Product d6b09a34 | Books | $875.65 | 146 | ★ 2.4 | 31 | BULK-f2ed4cd4 |
| 6373 | Bulk Product 292ddc71 | Electronics | $101.44 | 195 | ★ 2.9 | 74 | BULK-df8557a0 |
| 6374 | Bulk Product bce8d44e | Clothing | $357.19 | 446 | ★ 1.9 | 6 | BULK-05c20833 |
| 6375 | Bulk Product c44736aa | Electronics | $765.52 | 408 | ★ 4.1 | 64 | BULK-c06e9f30 |
| 6376 | Bulk Product 39365d4a | Clothing | $758.75 | 134 | ★ 1.1 | 28 | BULK-052cbce1 |
| 6377 | Bulk Product fac7a201 | Books | $995.93 | 478 | ★ 0.3 | 57 | BULK-bbec2d7b |
| 6378 | Bulk Product e26d40b5 | Electronics | $521.08 | 206 | ★ 0.6 | 85 | BULK-ff086b79 |
| 6379 | Bulk Product 075de188 | Clothing | $521.63 | 485 | ★ 3.8 | 71 | BULK-9e3e1d83 |
| 6380 | Bulk Product 2d141954 | Home & Garden | $626.38 | 40 | ★ 2.2 | 58 | BULK-e6724930 |
| 6381 | Bulk Product 49f0b53d | Books | $113.03 | 367 | ★ 4.7 | 37 | BULK-f75cbe6b |
| 6382 | Bulk Product 2a547ad8 | Books | $159.48 | 83 | ★ 4.6 | 97 | BULK-0be38863 |
| 6383 | Bulk Product 28534cbe | Electronics | $73.09 | 455 | ★ 2.5 | 62 | BULK-3b3261ce |
| 6384 | Bulk Product b7772872 | Toys & Games | $133.51 | 416 | ★ 0.2 | 43 | BULK-55895256 |
// 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
};
}