Efficient pagination using OFFSET-FETCH on SQL Server.
| ID | Name | Category | Price | Stock | Rating | Reviews | SKU |
|---|---|---|---|---|---|---|---|
| 14610 | Bulk Product cf73c054 | Home & Garden | $722.75 | 366 | ★ 4.1 | 61 | BULK-42215697 |
| 14611 | Bulk Product 76176de5 | Electronics | $167.38 | 409 | ★ 3.3 | 87 | BULK-56477596 |
| 14612 | Bulk Product 672f831d | Sports & Outdoors | $188.40 | 358 | ★ 0.1 | 26 | BULK-2e47000d |
| 14613 | Bulk Product 10ea4e5b | Electronics | $86.85 | 340 | ★ 4.1 | 4 | BULK-80c0a13c |
| 14614 | Bulk Product a560252e | Toys & Games | $451.66 | 195 | ★ 0.5 | 69 | BULK-660323d3 |
| 14615 | Bulk Product 8a438d20 | Clothing | $831.89 | 167 | ★ 1.3 | 67 | BULK-1da09881 |
| 14616 | Bulk Product a8f7cf55 | Toys & Games | $330.09 | 360 | ★ 2.8 | 33 | BULK-495a63a5 |
| 14617 | Bulk Product 20a2e495 | Electronics | $574.96 | 81 | ★ 2.5 | 7 | BULK-57025070 |
| 14618 | Bulk Product 619d3fa2 | Toys & Games | $463.23 | 373 | ★ 4.7 | 19 | BULK-1921bfe5 |
| 14619 | Bulk Product dc3f09bc | Electronics | $582.38 | 489 | ★ 0.4 | 48 | BULK-7da0f166 |
| 14620 | Bulk Product 8fbd9210 | Home & Garden | $972.01 | 137 | ★ 0.4 | 87 | BULK-e19812f8 |
| 14621 | Bulk Product 9842e472 | Electronics | $185.74 | 342 | ★ 1.1 | 47 | BULK-3e43725c |
| 14622 | Bulk Product 2d7abd58 | Sports & Outdoors | $405.22 | 164 | ★ 1.9 | 59 | BULK-5051cd0b |
| 14623 | Bulk Product 9f576a3c | Clothing | $554.71 | 225 | ★ 4.8 | 4 | BULK-7a7f9ca2 |
| 14624 | Bulk Product 43ed346c | Electronics | $877.95 | 322 | ★ 1.1 | 49 | BULK-db3108f4 |
| 14625 | Bulk Product a2b59b53 | Books | $667.99 | 479 | ★ 2.9 | 75 | BULK-e2fcdf32 |
| 14626 | Bulk Product 5fe7102c | Sports & Outdoors | $304.46 | 217 | ★ 0.1 | 42 | BULK-8149e0ae |
| 14627 | Bulk Product 9c605000 | Home & Garden | $851.19 | 411 | ★ 4.6 | 18 | BULK-3490e54f |
| 14628 | Bulk Product c2f48650 | Toys & Games | $777.37 | 176 | ★ 2.2 | 4 | BULK-87015e5c |
| 14629 | Bulk Product 7278fab6 | Clothing | $934.35 | 81 | ★ 2.7 | 52 | BULK-ca347b11 |
| 14630 | Bulk Product 2bcb6fc6 | Sports & Outdoors | $225.96 | 476 | ★ 1.4 | 82 | BULK-a20b334f |
| 14631 | Bulk Product a12f6f53 | Electronics | $519.15 | 164 | ★ 4.2 | 60 | BULK-4c66d4e3 |
| 14632 | Bulk Product ffc01366 | Books | $913.19 | 41 | ★ 2.2 | 4 | BULK-bc14b1b9 |
| 14633 | Bulk Product 3d8121d7 | Home & Garden | $48.17 | 97 | ★ 4.1 | 9 | BULK-938abd3b |
| 14634 | Bulk Product 376976ec | Toys & Games | $435.75 | 75 | ★ 1.0 | 35 | BULK-e444bb94 |
| 14635 | Bulk Product 68e41511 | Books | $102.99 | 98 | ★ 1.5 | 84 | BULK-821b2980 |
| 14636 | Bulk Product ffffe821 | Clothing | $441.02 | 386 | ★ 3.1 | 89 | BULK-0d6106b9 |
| 14637 | Bulk Product 7be380fa | Electronics | $462.49 | 315 | ★ 3.4 | 0 | BULK-1aeefd73 |
| 14638 | Bulk Product c3c8658c | Electronics | $582.39 | 389 | ★ 1.2 | 2 | BULK-9b465ab3 |
| 14639 | Bulk Product 3c42268e | Home & Garden | $391.75 | 279 | ★ 1.6 | 63 | BULK-c4cb5b26 |
| 14640 | Bulk Product 3307a67f | Books | $55.51 | 217 | ★ 0.8 | 56 | BULK-3518d2fc |
| 14641 | Bulk Product de6a444e | Toys & Games | $359.49 | 269 | ★ 1.6 | 23 | BULK-89e1b05e |
| 14642 | Bulk Product 5223aecc | Toys & Games | $906.38 | 433 | ★ 1.6 | 45 | BULK-3378f3b4 |
| 14643 | Bulk Product 1f4b0a16 | Clothing | $677.83 | 243 | ★ 3.6 | 31 | BULK-a59e8fc2 |
| 14644 | Bulk Product 26ead5ef | Sports & Outdoors | $875.33 | 320 | ★ 3.0 | 77 | BULK-65a8944d |
| 14645 | Bulk Product 9882af8d | Home & Garden | $257.91 | 384 | ★ 1.0 | 81 | BULK-56e0f1d6 |
| 14646 | Bulk Product 0e971e93 | Books | $948.44 | 212 | ★ 3.2 | 75 | BULK-e66d95c2 |
| 14647 | Bulk Product c951481b | Books | $37.39 | 491 | ★ 5.0 | 49 | BULK-4805f080 |
| 14648 | Bulk Product 90a6b065 | Home & Garden | $846.07 | 88 | ★ 0.3 | 84 | BULK-a9e015c0 |
| 14649 | Bulk Product a593fe4e | Books | $562.14 | 482 | ★ 4.8 | 84 | BULK-86501c4c |
| 14650 | Bulk Product a6c25a40 | Toys & Games | $199.29 | 178 | ★ 2.5 | 99 | BULK-b4d7b1bc |
| 14651 | Bulk Product 44fa0d1c | Books | $760.65 | 479 | ★ 4.8 | 55 | BULK-a16413c2 |
| 14652 | Bulk Product 526c42e8 | Toys & Games | $582.21 | 392 | ★ 1.3 | 44 | BULK-b95273ba |
| 14653 | Bulk Product 0b12c0e9 | Clothing | $840.90 | 77 | ★ 2.8 | 35 | BULK-8d2bf0b6 |
| 14654 | Bulk Product 5dca3e42 | Home & Garden | $336.54 | 382 | ★ 0.9 | 22 | BULK-61b13fec |
| 14655 | Bulk Product 1cd5275c | Books | $103.80 | 448 | ★ 2.8 | 53 | BULK-9e18c110 |
| 14656 | Bulk Product 9fffe3c0 | Clothing | $394.56 | 405 | ★ 0.2 | 20 | BULK-e2afbf38 |
| 14657 | Bulk Product c4b75329 | Toys & Games | $886.28 | 317 | ★ 4.2 | 17 | BULK-57e551a3 |
| 14658 | Bulk Product 1716d040 | Sports & Outdoors | $404.97 | 282 | ★ 3.6 | 69 | BULK-b1e052bd |
| 14659 | Bulk Product d67d977b | Clothing | $717.13 | 380 | ★ 1.3 | 44 | BULK-3d56f307 |
// 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
};
}