Efficient pagination using OFFSET-FETCH on SQL Server.
| ID | Name | Category | Price | Stock | Rating | Reviews | SKU |
|---|---|---|---|---|---|---|---|
| 24710 | Bulk Product 572a4bd3 | Electronics | $592.85 | 312 | ★ 0.1 | 55 | BULK-f287f25b |
| 24711 | Bulk Product 08819a5f | Books | $887.84 | 436 | ★ 0.6 | 11 | BULK-28cfa2e3 |
| 24712 | Bulk Product 4239abd6 | Home & Garden | $770.54 | 328 | ★ 0.1 | 28 | BULK-6bfb26be |
| 24713 | Bulk Product a1bd0b5a | Books | $866.03 | 269 | ★ 1.4 | 23 | BULK-32b94361 |
| 24714 | Bulk Product 3f4f3430 | Toys & Games | $660.58 | 203 | ★ 4.1 | 46 | BULK-8848635a |
| 24715 | Bulk Product 54a557a2 | Clothing | $704.56 | 343 | ★ 0.3 | 47 | BULK-5a9695d7 |
| 24716 | Bulk Product ae227e0c | Electronics | $810.50 | 411 | ★ 1.9 | 25 | BULK-bdc76795 |
| 24717 | Bulk Product 4a826322 | Electronics | $866.59 | 352 | ★ 4.1 | 21 | BULK-9dd421b8 |
| 24718 | Bulk Product 88fedad0 | Home & Garden | $365.86 | 203 | ★ 4.4 | 34 | BULK-6615674d |
| 24719 | Bulk Product 15132a88 | Electronics | $530.71 | 76 | ★ 2.9 | 35 | BULK-363b7d1e |
| 24720 | Bulk Product 85ae4fa7 | Electronics | $167.53 | 81 | ★ 3.7 | 65 | BULK-228d0073 |
| 24721 | Bulk Product c7bd6e94 | Home & Garden | $618.56 | 171 | ★ 4.6 | 74 | BULK-078d01fc |
| 24722 | Bulk Product 14f31d2f | Home & Garden | $446.05 | 356 | ★ 2.6 | 68 | BULK-24e94774 |
| 24723 | Bulk Product b07ea1b6 | Toys & Games | $317.10 | 476 | ★ 0.6 | 39 | BULK-5450cac1 |
| 24724 | Bulk Product e1b5f3c9 | Clothing | $961.13 | 38 | ★ 4.2 | 53 | BULK-1af063c0 |
| 24725 | Bulk Product 5ad4f7ac | Toys & Games | $482.00 | 12 | ★ 3.7 | 28 | BULK-eb861c7e |
| 24726 | Bulk Product 5e1c58e3 | Home & Garden | $101.38 | 177 | ★ 4.7 | 82 | BULK-6661219b |
| 24727 | Bulk Product 6bb9cb69 | Sports & Outdoors | $11.04 | 179 | ★ 1.0 | 77 | BULK-6db76db8 |
| 24728 | Bulk Product 242a6e11 | Clothing | $794.71 | 410 | ★ 0.5 | 35 | BULK-7e988af6 |
| 24729 | Bulk Product 4271783d | Clothing | $619.11 | 225 | ★ 3.6 | 47 | BULK-2b16d922 |
| 24730 | Bulk Product 94ccfbec | Sports & Outdoors | $344.72 | 36 | ★ 1.0 | 13 | BULK-aed93e73 |
| 24731 | Bulk Product c542d778 | Toys & Games | $411.85 | 470 | ★ 1.4 | 9 | BULK-52c99df9 |
| 24732 | Bulk Product 6cfa5e8d | Toys & Games | $366.92 | 355 | ★ 0.3 | 23 | BULK-a0736b85 |
| 24733 | Bulk Product 3332692c | Electronics | $114.50 | 13 | ★ 1.1 | 8 | BULK-bc330035 |
| 24734 | Bulk Product 83f52e43 | Clothing | $594.78 | 330 | ★ 2.2 | 93 | BULK-e9bff9c3 |
| 24735 | Bulk Product 203dc235 | Clothing | $374.26 | 146 | ★ 2.3 | 58 | BULK-c1c195cd |
| 24736 | Bulk Product bc7d8b6a | Toys & Games | $944.80 | 342 | ★ 3.1 | 70 | BULK-bdf74c42 |
| 24737 | Bulk Product e395d55d | Clothing | $595.41 | 302 | ★ 4.8 | 61 | BULK-be95f52e |
| 24738 | Bulk Product 9355874e | Home & Garden | $579.37 | 105 | ★ 3.5 | 24 | BULK-d1e915e8 |
| 24739 | Bulk Product 8141c7c6 | Home & Garden | $552.07 | 446 | ★ 3.8 | 52 | BULK-2220540f |
| 24740 | Bulk Product ef70eb34 | Electronics | $775.07 | 91 | ★ 4.8 | 42 | BULK-c6e43a39 |
| 24741 | Bulk Product 445e8f5a | Home & Garden | $819.48 | 327 | ★ 0.6 | 34 | BULK-85f83ba9 |
| 24742 | Bulk Product a925a252 | Toys & Games | $908.09 | 465 | ★ 1.3 | 3 | BULK-1c6324ad |
| 24743 | Bulk Product 5cbf473c | Sports & Outdoors | $179.64 | 451 | ★ 1.2 | 73 | BULK-d12eecab |
| 24744 | Bulk Product 37a267ce | Sports & Outdoors | $141.59 | 261 | ★ 0.3 | 3 | BULK-5b0dcf0a |
| 24745 | Bulk Product ae98e9b9 | Clothing | $282.24 | 382 | ★ 0.2 | 69 | BULK-b839e829 |
| 24746 | Bulk Product b1197397 | Clothing | $570.80 | 77 | ★ 1.0 | 77 | BULK-6bd28313 |
| 24747 | Bulk Product 7e84fbc6 | Books | $141.93 | 19 | ★ 2.8 | 78 | BULK-26fc14ad |
| 24748 | Bulk Product 4f5ff46d | Toys & Games | $46.95 | 252 | ★ 3.2 | 21 | BULK-d586695c |
| 24749 | Bulk Product 8173a4a5 | Books | $28.12 | 453 | ★ 1.7 | 52 | BULK-bb5f23b8 |
| 24750 | Bulk Product 8e4ffc4b | Toys & Games | $457.44 | 260 | ★ 4.1 | 25 | BULK-0998e9e1 |
| 24751 | Bulk Product f2e43b29 | Books | $359.56 | 171 | ★ 3.7 | 27 | BULK-564843e4 |
| 24752 | Bulk Product ce2314a1 | Sports & Outdoors | $213.02 | 221 | ★ 4.5 | 47 | BULK-3a295be2 |
| 24753 | Bulk Product cdfadf8f | Electronics | $960.70 | 24 | ★ 1.7 | 66 | BULK-bf1acd7a |
| 24754 | Bulk Product 1210ffbe | Sports & Outdoors | $961.79 | 55 | ★ 1.5 | 75 | BULK-6d15a27b |
| 24755 | Bulk Product 3cbb3509 | Toys & Games | $557.38 | 459 | ★ 3.8 | 61 | BULK-ff57f265 |
| 24756 | Bulk Product 8c61f6dc | Electronics | $43.56 | 89 | ★ 2.2 | 5 | BULK-2f90c60e |
| 24757 | Bulk Product d7f98966 | Books | $79.93 | 5 | ★ 2.3 | 70 | BULK-edd416f9 |
| 24758 | Bulk Product 6ed4862a | Electronics | $412.14 | 155 | ★ 1.0 | 97 | BULK-72a7f43e |
| 24759 | Bulk Product 1b99f168 | Electronics | $320.50 | 268 | ★ 1.1 | 54 | BULK-9a3c00cd |
// 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
};
}