Efficient pagination using OFFSET-FETCH on SQL Server.
| ID | Name | Category | Price | Stock | Rating | Reviews | SKU |
|---|---|---|---|---|---|---|---|
| 19510 | Bulk Product 5ce3818f | Books | $396.52 | 283 | ★ 2.9 | 15 | BULK-bf99a26f |
| 19511 | Bulk Product cdb54bb0 | Electronics | $53.54 | 20 | ★ 0.9 | 33 | BULK-039e9a79 |
| 19512 | Bulk Product ba7723cb | Electronics | $287.73 | 140 | ★ 1.8 | 5 | BULK-2e80ab4f |
| 19513 | Bulk Product 1ac74d91 | Books | $18.32 | 95 | ★ 3.6 | 6 | BULK-378c97da |
| 19514 | Bulk Product 10116cb6 | Electronics | $951.07 | 409 | ★ 1.0 | 24 | BULK-c144dbca |
| 19515 | Bulk Product a03f3cab | Electronics | $729.18 | 24 | ★ 4.3 | 18 | BULK-67626a36 |
| 19516 | Bulk Product f6f7b3b0 | Electronics | $916.06 | 321 | ★ 0.1 | 58 | BULK-4f3295fd |
| 19517 | Bulk Product 28b19720 | Electronics | $904.44 | 136 | ★ 4.0 | 5 | BULK-2c803487 |
| 19518 | Bulk Product c62c842e | Sports & Outdoors | $758.13 | 451 | ★ 3.5 | 6 | BULK-b79f229f |
| 19519 | Bulk Product 44f9f112 | Sports & Outdoors | $10.23 | 133 | ★ 4.8 | 46 | BULK-2e0e7cdc |
| 19520 | Bulk Product c36162ce | Sports & Outdoors | $479.06 | 291 | ★ 4.5 | 56 | BULK-b27e33b3 |
| 19521 | Bulk Product 1597381f | Electronics | $375.52 | 250 | ★ 1.4 | 94 | BULK-c4e4c4a8 |
| 19522 | Bulk Product a13cdbfe | Clothing | $217.13 | 426 | ★ 4.3 | 97 | BULK-a9addd9a |
| 19523 | Bulk Product 245de6eb | Home & Garden | $638.43 | 274 | ★ 2.8 | 74 | BULK-39258e8e |
| 19524 | Bulk Product 15a65ff4 | Electronics | $343.69 | 470 | ★ 3.2 | 90 | BULK-8d7b7233 |
| 19525 | Bulk Product c30b13fa | Electronics | $239.69 | 0 | ★ 4.0 | 91 | BULK-d961c25d |
| 19526 | Bulk Product 6e7a061a | Electronics | $958.41 | 392 | ★ 4.5 | 54 | BULK-7438d918 |
| 19527 | Bulk Product f999f3a8 | Sports & Outdoors | $315.31 | 263 | ★ 2.8 | 27 | BULK-fa01e936 |
| 19528 | Bulk Product f8d049cf | Books | $210.21 | 362 | ★ 4.3 | 29 | BULK-abeb4ba2 |
| 19529 | Bulk Product e695ea42 | Home & Garden | $12.05 | 5 | ★ 1.7 | 91 | BULK-3b96ceb4 |
| 19530 | Bulk Product cd2a806e | Electronics | $589.40 | 216 | ★ 4.5 | 77 | BULK-33ee8170 |
| 19531 | Bulk Product 0f25e554 | Home & Garden | $87.45 | 351 | ★ 3.8 | 66 | BULK-c923cb37 |
| 19532 | Bulk Product a903727f | Clothing | $507.78 | 391 | ★ 1.1 | 33 | BULK-5d0adbad |
| 19533 | Bulk Product 79d24c44 | Sports & Outdoors | $545.25 | 203 | ★ 2.3 | 62 | BULK-f864bd79 |
| 19534 | Bulk Product a8907a2c | Toys & Games | $545.25 | 372 | ★ 1.9 | 66 | BULK-613544d1 |
| 19535 | Bulk Product b232d7bf | Sports & Outdoors | $863.24 | 131 | ★ 3.8 | 88 | BULK-8e348377 |
| 19536 | Bulk Product a878612e | Sports & Outdoors | $924.52 | 468 | ★ 4.6 | 97 | BULK-6e53a305 |
| 19537 | Bulk Product 170ab1d5 | Electronics | $407.53 | 235 | ★ 2.6 | 81 | BULK-1141a76b |
| 19538 | Bulk Product 5ce52a9e | Toys & Games | $933.53 | 478 | ★ 2.1 | 22 | BULK-e21372dc |
| 19539 | Bulk Product 12e56e33 | Books | $899.99 | 253 | ★ 3.9 | 48 | BULK-33374033 |
| 19540 | Bulk Product 4b846a2a | Sports & Outdoors | $570.10 | 317 | ★ 4.2 | 57 | BULK-70c4fda4 |
| 19541 | Bulk Product bb068439 | Clothing | $284.42 | 39 | ★ 3.0 | 72 | BULK-c47f4d81 |
| 19542 | Bulk Product e4f50758 | Clothing | $272.13 | 94 | ★ 4.8 | 36 | BULK-2f16607b |
| 19543 | Bulk Product da583e68 | Home & Garden | $304.88 | 29 | ★ 2.4 | 92 | BULK-0e0358a9 |
| 19544 | Bulk Product 0d260512 | Books | $368.04 | 125 | ★ 1.3 | 57 | BULK-6739b99e |
| 19545 | Bulk Product 77a911ca | Sports & Outdoors | $171.08 | 189 | ★ 3.2 | 56 | BULK-49359ccf |
| 19546 | Bulk Product 29bb94a8 | Clothing | $725.22 | 435 | ★ 2.6 | 25 | BULK-769547f3 |
| 19547 | Bulk Product 1c9ade84 | Sports & Outdoors | $787.92 | 452 | ★ 3.3 | 73 | BULK-6604bd8a |
| 19548 | Bulk Product a7af250a | Home & Garden | $957.22 | 207 | ★ 3.0 | 74 | BULK-e5948e89 |
| 19549 | Bulk Product 07cbdb0b | Toys & Games | $957.51 | 416 | ★ 3.7 | 46 | BULK-a7994117 |
| 19550 | Bulk Product 90bf6588 | Toys & Games | $852.87 | 154 | ★ 0.7 | 99 | BULK-2ddbdc2c |
| 19551 | Bulk Product 4d5d838c | Home & Garden | $86.59 | 268 | ★ 0.6 | 56 | BULK-6bb172d2 |
| 19552 | Bulk Product 7efcb327 | Sports & Outdoors | $190.54 | 395 | ★ 1.1 | 88 | BULK-1c011ddd |
| 19553 | Bulk Product e36d9dd4 | Clothing | $248.91 | 36 | ★ 1.2 | 56 | BULK-2dbd4dc4 |
| 19554 | Bulk Product d429ce87 | Toys & Games | $587.06 | 224 | ★ 1.2 | 16 | BULK-f4d56026 |
| 19555 | Bulk Product 326ee781 | Toys & Games | $661.87 | 477 | ★ 1.5 | 6 | BULK-07a95c5f |
| 19556 | Bulk Product 8eca11b1 | Electronics | $978.81 | 342 | ★ 3.0 | 42 | BULK-015a2197 |
| 19557 | Bulk Product 545e6822 | Books | $351.82 | 73 | ★ 4.2 | 74 | BULK-556ad1e1 |
| 19558 | Bulk Product 2463f886 | Home & Garden | $948.62 | 496 | ★ 2.9 | 38 | BULK-147cbc0f |
| 19559 | Bulk Product e60daaa2 | Clothing | $569.32 | 437 | ★ 1.9 | 81 | BULK-5174e8c7 |
// 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
};
}