Efficient pagination using OFFSET-FETCH on SQL Server.
| ID | Name | Category | Price | Stock | Rating | Reviews | SKU |
|---|---|---|---|---|---|---|---|
| 12610 | Bulk Product 9e54f32c | Clothing | $42.90 | 167 | ★ 4.3 | 17 | BULK-035d7cc5 |
| 12611 | Bulk Product 0809a186 | Books | $78.48 | 3 | ★ 1.1 | 16 | BULK-e487d9eb |
| 12612 | Bulk Product 5e55b04c | Sports & Outdoors | $596.70 | 241 | ★ 0.9 | 62 | BULK-d9345685 |
| 12613 | Bulk Product 9c0d32c2 | Home & Garden | $582.87 | 406 | ★ 2.1 | 76 | BULK-5c04b769 |
| 12614 | Bulk Product dddd5aed | Sports & Outdoors | $940.97 | 72 | ★ 0.7 | 57 | BULK-835f3735 |
| 12615 | Bulk Product 6f54323f | Electronics | $526.70 | 41 | ★ 4.8 | 35 | BULK-091d0a56 |
| 12616 | Bulk Product 83361058 | Home & Garden | $660.69 | 336 | ★ 0.7 | 61 | BULK-c8780616 |
| 12617 | Bulk Product 2cc41f9f | Clothing | $695.58 | 482 | ★ 2.1 | 5 | BULK-7492614b |
| 12618 | Bulk Product 21d4e107 | Electronics | $678.59 | 468 | ★ 1.3 | 38 | BULK-b7e21358 |
| 12619 | Bulk Product b65656a1 | Home & Garden | $334.14 | 108 | ★ 4.2 | 86 | BULK-d767dc81 |
| 12620 | Bulk Product 1fed288e | Toys & Games | $677.13 | 101 | ★ 1.5 | 40 | BULK-a88458fe |
| 12621 | Bulk Product e6a140ef | Books | $687.30 | 291 | ★ 1.5 | 73 | BULK-bd9b2220 |
| 12622 | Bulk Product 70db4373 | Toys & Games | $562.99 | 362 | ★ 1.3 | 77 | BULK-1b63cb74 |
| 12623 | Bulk Product 80053337 | Toys & Games | $218.18 | 121 | ★ 4.0 | 34 | BULK-923b2d8a |
| 12624 | Bulk Product 6d6b7671 | Clothing | $574.18 | 162 | ★ 5.0 | 31 | BULK-e3bf029e |
| 12625 | Bulk Product 0cd9d389 | Sports & Outdoors | $438.23 | 267 | ★ 0.5 | 91 | BULK-37d4afa5 |
| 12626 | Bulk Product 19d416fc | Toys & Games | $783.71 | 383 | ★ 1.3 | 92 | BULK-8a076830 |
| 12627 | Bulk Product f9f440b2 | Toys & Games | $678.84 | 432 | ★ 4.5 | 31 | BULK-35732d13 |
| 12628 | Bulk Product f449502b | Home & Garden | $441.96 | 310 | ★ 3.3 | 91 | BULK-da8f06ba |
| 12629 | Bulk Product 0a5e7770 | Sports & Outdoors | $448.72 | 487 | ★ 1.5 | 1 | BULK-294232d3 |
| 12630 | Bulk Product 5ffd87b6 | Home & Garden | $493.34 | 431 | ★ 3.5 | 69 | BULK-9e411b34 |
| 12631 | Bulk Product 323bd971 | Sports & Outdoors | $294.42 | 245 | ★ 0.2 | 60 | BULK-04517dfc |
| 12632 | Bulk Product 0ae2e541 | Home & Garden | $606.30 | 265 | ★ 3.1 | 46 | BULK-2c349904 |
| 12633 | Bulk Product 54e540de | Clothing | $474.65 | 340 | ★ 1.7 | 23 | BULK-f4e187f5 |
| 12634 | Bulk Product 1cb31a35 | Clothing | $444.56 | 178 | ★ 4.5 | 60 | BULK-fce2da9a |
| 12635 | Bulk Product a7640b1f | Sports & Outdoors | $644.75 | 487 | ★ 3.1 | 37 | BULK-8c30734e |
| 12636 | Bulk Product d4982544 | Sports & Outdoors | $642.79 | 77 | ★ 0.1 | 49 | BULK-bb208c19 |
| 12637 | Bulk Product 126eea77 | Electronics | $360.35 | 386 | ★ 2.0 | 70 | BULK-4bd3a6b2 |
| 12638 | Bulk Product 95c32399 | Sports & Outdoors | $157.01 | 391 | ★ 1.9 | 75 | BULK-cbdb7faa |
| 12639 | Bulk Product 62056933 | Toys & Games | $388.14 | 139 | ★ 4.5 | 44 | BULK-0ad30e85 |
| 12640 | Bulk Product 2d42b9c7 | Clothing | $959.06 | 102 | ★ 4.6 | 80 | BULK-44a75090 |
| 12641 | Bulk Product 1aa35761 | Toys & Games | $647.27 | 417 | ★ 3.8 | 32 | BULK-1e94b91c |
| 12642 | Bulk Product e5237191 | Electronics | $614.21 | 213 | ★ 2.1 | 39 | BULK-27757d35 |
| 12643 | Bulk Product 44e0dc3e | Electronics | $732.08 | 424 | ★ 2.3 | 76 | BULK-9e352693 |
| 12644 | Bulk Product 2c6ea14d | Clothing | $488.82 | 463 | ★ 1.5 | 36 | BULK-4d74ce6c |
| 12645 | Bulk Product e1f2c565 | Sports & Outdoors | $346.51 | 8 | ★ 4.4 | 25 | BULK-f3e32eb9 |
| 12646 | Bulk Product 5139b706 | Home & Garden | $123.85 | 363 | ★ 0.5 | 7 | BULK-a6a9c745 |
| 12647 | Bulk Product b2a470fb | Electronics | $381.84 | 284 | ★ 1.3 | 69 | BULK-24d708b4 |
| 12648 | Bulk Product 7837a1e4 | Home & Garden | $752.49 | 37 | ★ 2.1 | 60 | BULK-4b74aac1 |
| 12649 | Bulk Product 027fae70 | Toys & Games | $83.54 | 284 | ★ 2.5 | 74 | BULK-2717796f |
| 12650 | Bulk Product ceef51eb | Toys & Games | $846.28 | 97 | ★ 3.3 | 40 | BULK-5b0f893d |
| 12651 | Bulk Product 6c435b30 | Home & Garden | $697.16 | 125 | ★ 1.2 | 73 | BULK-2eca06d3 |
| 12652 | Bulk Product 6291f59a | Sports & Outdoors | $55.82 | 315 | ★ 4.3 | 36 | BULK-d81a3371 |
| 12653 | Bulk Product 971c55cf | Sports & Outdoors | $316.44 | 33 | ★ 2.7 | 51 | BULK-f9ae0ecf |
| 12654 | Bulk Product cf9e166a | Toys & Games | $738.99 | 274 | ★ 3.2 | 48 | BULK-d9d9bfe4 |
| 12655 | Bulk Product c0f616ec | Clothing | $453.12 | 429 | ★ 3.2 | 10 | BULK-b387741d |
| 12656 | Bulk Product 115ac6c0 | Books | $35.10 | 493 | ★ 0.2 | 58 | BULK-f5a3b219 |
| 12657 | Bulk Product dd895b50 | Books | $372.46 | 3 | ★ 0.9 | 84 | BULK-57ac155e |
| 12658 | Bulk Product bb9ef0ab | Home & Garden | $109.66 | 307 | ★ 3.5 | 93 | BULK-c72ff4f4 |
| 12659 | Bulk Product 2b940fb6 | Toys & Games | $825.08 | 185 | ★ 0.7 | 14 | BULK-65049144 |
// 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
};
}