Efficient pagination using OFFSET-FETCH on SQL Server.
| ID | Name | Category | Price | Stock | Rating | Reviews | SKU |
|---|---|---|---|---|---|---|---|
| 6560 | Bulk Product 933305b3 | Clothing | $574.55 | 456 | ★ 0.8 | 54 | BULK-e9ac39d0 |
| 6561 | Bulk Product 48e830f0 | Toys & Games | $11.83 | 224 | ★ 1.5 | 51 | BULK-7344d6ff |
| 6562 | Bulk Product 1c376e23 | Books | $412.25 | 193 | ★ 0.7 | 54 | BULK-2c7bf7f3 |
| 6563 | Bulk Product 1dea3e84 | Clothing | $229.57 | 87 | ★ 2.3 | 51 | BULK-c4e16446 |
| 6564 | Bulk Product 093089d1 | Toys & Games | $621.54 | 496 | ★ 1.4 | 2 | BULK-a88bfb64 |
| 6565 | Bulk Product af607261 | Toys & Games | $521.99 | 210 | ★ 4.1 | 24 | BULK-607254e4 |
| 6566 | Bulk Product 93ecc917 | Clothing | $133.48 | 165 | ★ 4.2 | 15 | BULK-63caabce |
| 6567 | Bulk Product c893cf77 | Books | $514.10 | 181 | ★ 2.1 | 38 | BULK-8d1db19a |
| 6568 | Bulk Product f1725954 | Home & Garden | $429.23 | 351 | ★ 2.9 | 87 | BULK-7463a784 |
| 6569 | Bulk Product eb2502aa | Electronics | $680.00 | 360 | ★ 0.8 | 81 | BULK-398431ba |
| 6570 | Bulk Product 6abe205f | Sports & Outdoors | $672.87 | 411 | ★ 3.1 | 40 | BULK-6b6713de |
| 6571 | Bulk Product ff02412f | Electronics | $523.53 | 82 | ★ 4.8 | 47 | BULK-9660d73f |
| 6572 | Bulk Product 261eafac | Clothing | $571.01 | 458 | ★ 1.6 | 66 | BULK-24e77cc1 |
| 6573 | Bulk Product 83de715a | Toys & Games | $532.18 | 346 | ★ 0.5 | 10 | BULK-0e80f4c0 |
| 6574 | Bulk Product a9d7b162 | Toys & Games | $640.63 | 345 | ★ 2.0 | 25 | BULK-f070e24c |
| 6575 | Bulk Product 04777edc | Home & Garden | $195.31 | 247 | ★ 2.0 | 81 | BULK-051aa522 |
| 6576 | Bulk Product 76cdcbbb | Sports & Outdoors | $220.11 | 396 | ★ 4.8 | 52 | BULK-852da56b |
| 6577 | Bulk Product 6f479ef1 | Books | $792.55 | 227 | ★ 3.3 | 9 | BULK-77d113f7 |
| 6578 | Bulk Product 276a3041 | Clothing | $399.46 | 379 | ★ 2.2 | 85 | BULK-eceb4048 |
| 6579 | Bulk Product 7c338157 | Home & Garden | $946.44 | 287 | ★ 2.5 | 95 | BULK-b0e592b8 |
| 6580 | Bulk Product 8c3b9579 | Electronics | $599.71 | 31 | ★ 2.8 | 49 | BULK-4b9692fb |
| 6581 | Bulk Product e2fea821 | Books | $705.75 | 445 | ★ 0.6 | 70 | BULK-54538bb9 |
| 6582 | Bulk Product 6fb9bf1f | Clothing | $307.26 | 455 | ★ 4.2 | 30 | BULK-7d5abae9 |
| 6583 | Bulk Product 1d45c600 | Books | $761.40 | 433 | ★ 0.6 | 70 | BULK-ed546f3d |
| 6584 | Bulk Product 1cd3ed78 | Home & Garden | $379.70 | 306 | ★ 0.9 | 17 | BULK-13a4a0b0 |
// 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
};
}