Efficient pagination using OFFSET-FETCH on SQL Server.
| ID | Name | Category | Price | Stock | Rating | Reviews | SKU |
|---|---|---|---|---|---|---|---|
| 16610 | Bulk Product 282c3238 | Clothing | $795.39 | 359 | ★ 3.9 | 70 | BULK-838842a4 |
| 16611 | Bulk Product 31784b44 | Toys & Games | $659.02 | 372 | ★ 3.4 | 93 | BULK-1b3a1644 |
| 16612 | Bulk Product 3a8dce48 | Toys & Games | $808.62 | 283 | ★ 1.6 | 35 | BULK-1d3263c9 |
| 16613 | Bulk Product 77bac2ad | Electronics | $753.51 | 167 | ★ 2.7 | 12 | BULK-6b358b2f |
| 16614 | Bulk Product 0c6ba7cf | Toys & Games | $331.99 | 113 | ★ 1.3 | 18 | BULK-33f45362 |
| 16615 | Bulk Product ac1cb61e | Clothing | $572.16 | 36 | ★ 2.9 | 31 | BULK-f9ca91e9 |
| 16616 | Bulk Product 5326ac64 | Clothing | $495.34 | 373 | ★ 3.7 | 45 | BULK-6fc77a70 |
| 16617 | Bulk Product 8de771d1 | Electronics | $241.46 | 299 | ★ 2.8 | 26 | BULK-dee36385 |
| 16618 | Bulk Product 13f148d2 | Books | $1,004.68 | 254 | ★ 2.8 | 52 | BULK-61e78fed |
| 16619 | Bulk Product 22426b7e | Clothing | $605.10 | 289 | ★ 4.9 | 48 | BULK-4886b53b |
| 16620 | Bulk Product 8f8a8cb4 | Books | $666.66 | 254 | ★ 1.9 | 71 | BULK-2ad02b62 |
| 16621 | Bulk Product 7249e045 | Toys & Games | $870.90 | 340 | ★ 0.7 | 35 | BULK-09dd90c1 |
| 16622 | Bulk Product f0c706cb | Home & Garden | $976.74 | 241 | ★ 4.7 | 81 | BULK-1104385e |
| 16623 | Bulk Product daf8fd09 | Sports & Outdoors | $218.44 | 277 | ★ 4.4 | 40 | BULK-4cd24d14 |
| 16624 | Bulk Product 63650a03 | Home & Garden | $526.18 | 64 | ★ 0.7 | 55 | BULK-4a5af0c9 |
| 16625 | Bulk Product 0ac0bb55 | Sports & Outdoors | $393.13 | 169 | ★ 1.3 | 42 | BULK-82570eef |
| 16626 | Bulk Product e285d055 | Sports & Outdoors | $830.30 | 312 | ★ 4.4 | 14 | BULK-331a9fe3 |
| 16627 | Bulk Product 5ed5ace7 | Books | $663.83 | 264 | ★ 1.5 | 40 | BULK-6b130211 |
| 16628 | Bulk Product 073dadb6 | Home & Garden | $278.65 | 12 | ★ 3.6 | 32 | BULK-958c4d9d |
| 16629 | Bulk Product 79ff558f | Clothing | $945.75 | 28 | ★ 0.3 | 20 | BULK-27dbf291 |
| 16630 | Bulk Product 31476f38 | Home & Garden | $25.68 | 352 | ★ 0.1 | 81 | BULK-f5682e46 |
| 16631 | Bulk Product 1b4c8956 | Electronics | $603.53 | 19 | ★ 4.4 | 87 | BULK-fa15b365 |
| 16632 | Bulk Product 7cc0b9b3 | Clothing | $425.21 | 152 | ★ 4.5 | 91 | BULK-dbe262f9 |
| 16633 | Bulk Product 85fb0848 | Toys & Games | $883.22 | 191 | ★ 2.9 | 81 | BULK-f132a6fd |
| 16634 | Bulk Product 6ff10e60 | Electronics | $712.80 | 239 | ★ 3.2 | 55 | BULK-0c93034e |
| 16635 | Bulk Product 991675b4 | Sports & Outdoors | $674.45 | 145 | ★ 4.7 | 81 | BULK-a4ad5509 |
| 16636 | Bulk Product 3c564f3a | Home & Garden | $185.96 | 371 | ★ 4.0 | 33 | BULK-afa24015 |
| 16637 | Bulk Product 7f52c21d | Sports & Outdoors | $262.58 | 62 | ★ 3.1 | 27 | BULK-5fe146b9 |
| 16638 | Bulk Product 1d981a10 | Sports & Outdoors | $989.69 | 179 | ★ 1.5 | 66 | BULK-a808c285 |
| 16639 | Bulk Product 3b139c44 | Electronics | $926.10 | 181 | ★ 4.7 | 60 | BULK-885d9791 |
| 16640 | Bulk Product 830452c9 | Sports & Outdoors | $804.96 | 48 | ★ 1.7 | 64 | BULK-a2ae045c |
| 16641 | Bulk Product c2ac8356 | Clothing | $69.21 | 204 | ★ 1.4 | 82 | BULK-a857a559 |
| 16642 | Bulk Product 30a69e9e | Toys & Games | $888.27 | 25 | ★ 1.6 | 34 | BULK-c28d22a2 |
| 16643 | Bulk Product cd0d526b | Books | $433.62 | 440 | ★ 2.9 | 17 | BULK-cc78f00f |
| 16644 | Bulk Product d59644f6 | Sports & Outdoors | $81.46 | 97 | ★ 1.7 | 26 | BULK-c0fad0f3 |
| 16645 | Bulk Product 35ed7db2 | Electronics | $560.53 | 69 | ★ 4.0 | 19 | BULK-43fa6c96 |
| 16646 | Bulk Product 8610154e | Books | $782.15 | 348 | ★ 4.7 | 67 | BULK-af0986f4 |
| 16647 | Bulk Product dea438bf | Home & Garden | $107.39 | 367 | ★ 0.8 | 15 | BULK-60325f51 |
| 16648 | Bulk Product c02817c0 | Home & Garden | $815.03 | 35 | ★ 0.2 | 90 | BULK-3466c6ef |
| 16649 | Bulk Product 25c17003 | Electronics | $303.98 | 14 | ★ 4.3 | 11 | BULK-c606ef8c |
| 16650 | Bulk Product c92bff4a | Clothing | $144.10 | 24 | ★ 0.6 | 9 | BULK-377549d5 |
| 16651 | Bulk Product 8a20c982 | Toys & Games | $706.82 | 274 | ★ 3.6 | 4 | BULK-dcf6aaf5 |
| 16652 | Bulk Product 7c8b8558 | Clothing | $206.97 | 7 | ★ 0.7 | 22 | BULK-6b9f1460 |
| 16653 | Bulk Product 06e2f973 | Electronics | $431.44 | 234 | ★ 3.1 | 82 | BULK-6538a920 |
| 16654 | Bulk Product 57e14586 | Clothing | $629.62 | 168 | ★ 2.7 | 42 | BULK-be39984d |
| 16655 | Bulk Product bda6c899 | Toys & Games | $954.58 | 280 | ★ 3.9 | 16 | BULK-b992832f |
| 16656 | Bulk Product b32f31be | Clothing | $317.76 | 292 | ★ 3.1 | 3 | BULK-8ad9e440 |
| 16657 | Bulk Product 33fb7731 | Sports & Outdoors | $215.03 | 262 | ★ 4.1 | 56 | BULK-e72cfc29 |
| 16658 | Bulk Product 257c7ada | Toys & Games | $847.25 | 353 | ★ 4.5 | 15 | BULK-e6fd1f14 |
| 16659 | Bulk Product 60d84493 | Books | $369.68 | 326 | ★ 2.8 | 31 | BULK-1a64b9c6 |
// 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
};
}