Efficient pagination using OFFSET-FETCH on SQL Server.
| ID | Name | Category | Price | Stock | Rating | Reviews | SKU |
|---|---|---|---|---|---|---|---|
| 10310 | Bulk Product ec736aea | Sports & Outdoors | $748.55 | 47 | ★ 1.1 | 59 | BULK-6c63a751 |
| 10311 | Bulk Product 5c3cbb6a | Electronics | $728.74 | 295 | ★ 1.5 | 85 | BULK-dc3b4839 |
| 10312 | Bulk Product 43544058 | Clothing | $152.45 | 152 | ★ 3.2 | 12 | BULK-d9bb1153 |
| 10313 | Bulk Product 9182b36f | Electronics | $337.29 | 386 | ★ 1.0 | 29 | BULK-a164f211 |
| 10314 | Bulk Product 9e86259c | Home & Garden | $483.08 | 112 | ★ 3.4 | 92 | BULK-f1f6c878 |
| 10315 | Bulk Product f9ba56a0 | Toys & Games | $103.46 | 261 | ★ 4.1 | 34 | BULK-80fd0194 |
| 10316 | Bulk Product e0951c44 | Sports & Outdoors | $81.45 | 497 | ★ 4.0 | 82 | BULK-84a5d9ff |
| 10317 | Bulk Product c6696a2e | Clothing | $718.99 | 2 | ★ 3.7 | 83 | BULK-debf648b |
| 10318 | Bulk Product d8a2e772 | Electronics | $580.58 | 374 | ★ 4.9 | 33 | BULK-6651e5bf |
| 10319 | Bulk Product 21f317f5 | Home & Garden | $791.16 | 496 | ★ 1.7 | 55 | BULK-ea6048f3 |
| 10320 | Bulk Product bb90ed49 | Books | $565.92 | 163 | ★ 0.7 | 60 | BULK-20a9960f |
| 10321 | Bulk Product cde11a23 | Sports & Outdoors | $903.34 | 229 | ★ 2.4 | 65 | BULK-ecfd789a |
| 10322 | Bulk Product e7c84276 | Books | $113.62 | 227 | ★ 2.1 | 5 | BULK-16915b0c |
| 10323 | Bulk Product 6d02126f | Books | $143.48 | 283 | ★ 3.7 | 37 | BULK-88e40b8c |
| 10324 | Bulk Product cfd84b86 | Sports & Outdoors | $531.24 | 438 | ★ 2.3 | 20 | BULK-57d8efc5 |
| 10325 | Bulk Product 3cc7a0ad | Home & Garden | $689.63 | 15 | ★ 3.5 | 0 | BULK-d5a679b3 |
| 10326 | Bulk Product d3501d32 | Toys & Games | $453.21 | 146 | ★ 2.8 | 56 | BULK-d2ece461 |
| 10327 | Bulk Product a68b92d4 | Sports & Outdoors | $68.94 | 248 | ★ 2.2 | 27 | BULK-257b6684 |
| 10328 | Bulk Product d5f7a178 | Books | $85.96 | 400 | ★ 1.2 | 94 | BULK-3a581c09 |
| 10329 | Bulk Product 8b7e7733 | Sports & Outdoors | $697.17 | 320 | ★ 1.8 | 5 | BULK-93a64c53 |
| 10330 | Bulk Product 9b00f72f | Books | $608.28 | 338 | ★ 0.0 | 45 | BULK-35f6c5de |
| 10331 | Bulk Product e4231e63 | Electronics | $592.08 | 95 | ★ 2.0 | 91 | BULK-ae6d737e |
| 10332 | Bulk Product 7cf035ad | Toys & Games | $721.62 | 115 | ★ 4.0 | 97 | BULK-0fd1f39b |
| 10333 | Bulk Product 0e137ea0 | Home & Garden | $608.77 | 384 | ★ 3.7 | 15 | BULK-156a91b3 |
| 10334 | Bulk Product cedf8bf9 | Books | $185.76 | 278 | ★ 0.8 | 67 | BULK-c819f904 |
// 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
};
}