Efficient pagination using OFFSET-FETCH on SQL Server.
| ID | Name | Category | Price | Stock | Rating | Reviews | SKU |
|---|---|---|---|---|---|---|---|
| 14410 | Bulk Product cf8bac1f | Home & Garden | $380.32 | 104 | ★ 1.1 | 0 | BULK-e4e3157c |
| 14411 | Bulk Product e022c31e | Sports & Outdoors | $638.93 | 175 | ★ 2.4 | 10 | BULK-e33fc341 |
| 14412 | Bulk Product 190af85f | Toys & Games | $804.04 | 269 | ★ 1.0 | 46 | BULK-e072efdb |
| 14413 | Bulk Product 0671d8d9 | Books | $20.58 | 168 | ★ 4.2 | 87 | BULK-e21383a1 |
| 14414 | Bulk Product 62d0b791 | Home & Garden | $412.31 | 297 | ★ 2.9 | 87 | BULK-7a2d7169 |
| 14415 | Bulk Product 0e651b94 | Sports & Outdoors | $15.85 | 94 | ★ 4.6 | 68 | BULK-9c00dd0f |
| 14416 | Bulk Product 2fe07f34 | Clothing | $176.87 | 293 | ★ 1.6 | 12 | BULK-d1daa9d5 |
| 14417 | Bulk Product 42011102 | Sports & Outdoors | $609.70 | 74 | ★ 0.4 | 12 | BULK-f3a4426a |
| 14418 | Bulk Product a92c837e | Books | $53.28 | 1 | ★ 0.9 | 1 | BULK-15ec31a4 |
| 14419 | Bulk Product 224589e4 | Home & Garden | $96.33 | 69 | ★ 3.1 | 89 | BULK-fd1d0595 |
| 14420 | Bulk Product 4caacada | Toys & Games | $350.68 | 280 | ★ 1.8 | 39 | BULK-6e4984da |
| 14421 | Bulk Product 19cb3ade | Toys & Games | $335.32 | 423 | ★ 0.3 | 71 | BULK-6fbd40c7 |
| 14422 | Bulk Product 593387d5 | Clothing | $420.47 | 375 | ★ 1.7 | 72 | BULK-fe0070f3 |
| 14423 | Bulk Product 011a44b0 | Toys & Games | $654.31 | 260 | ★ 3.9 | 56 | BULK-f233b36c |
| 14424 | Bulk Product 14e799a6 | Books | $191.78 | 406 | ★ 2.6 | 16 | BULK-d6363425 |
| 14425 | Bulk Product 2371f15c | Sports & Outdoors | $916.69 | 463 | ★ 0.6 | 20 | BULK-8ce16d93 |
| 14426 | Bulk Product e4ae6c93 | Books | $604.90 | 387 | ★ 5.0 | 46 | BULK-4b13a15f |
| 14427 | Bulk Product 4fe82750 | Clothing | $529.56 | 265 | ★ 0.4 | 61 | BULK-325f3c59 |
| 14428 | Bulk Product c8c7a2d6 | Sports & Outdoors | $999.58 | 271 | ★ 1.6 | 58 | BULK-243415d4 |
| 14429 | Bulk Product 19837790 | Electronics | $780.15 | 0 | ★ 1.5 | 35 | BULK-83bde26f |
| 14430 | Bulk Product 6f126079 | Clothing | $220.86 | 56 | ★ 1.2 | 14 | BULK-48d240bb |
| 14431 | Bulk Product a40628c1 | Clothing | $740.46 | 128 | ★ 3.4 | 37 | BULK-4024dfb3 |
| 14432 | Bulk Product 4c079a4a | Home & Garden | $777.09 | 82 | ★ 1.9 | 4 | BULK-fab3316d |
| 14433 | Bulk Product 1c9c867b | Electronics | $604.90 | 270 | ★ 2.0 | 41 | BULK-ef24ed17 |
| 14434 | Bulk Product d366d158 | Electronics | $867.74 | 251 | ★ 0.0 | 61 | BULK-227c8a39 |
| 14435 | Bulk Product 664c2b19 | Books | $246.92 | 474 | ★ 2.5 | 47 | BULK-4bbcc878 |
| 14436 | Bulk Product 550314e1 | Books | $557.36 | 367 | ★ 4.3 | 30 | BULK-7d897c48 |
| 14437 | Bulk Product 96e5e24a | Electronics | $634.10 | 109 | ★ 4.2 | 48 | BULK-4453eee5 |
| 14438 | Bulk Product 4b415852 | Clothing | $688.74 | 454 | ★ 3.5 | 29 | BULK-0f1ad9bc |
| 14439 | Bulk Product e6ad0dd6 | Books | $668.91 | 480 | ★ 0.8 | 90 | BULK-375fe6ea |
| 14440 | Bulk Product 6c1d62c3 | Home & Garden | $401.89 | 487 | ★ 3.7 | 71 | BULK-db506fa0 |
| 14441 | Bulk Product b65334c4 | Books | $785.72 | 66 | ★ 3.3 | 52 | BULK-00769bc3 |
| 14442 | Bulk Product 45d93a70 | Toys & Games | $779.43 | 294 | ★ 1.3 | 58 | BULK-236f426d |
| 14443 | Bulk Product a00b7685 | Sports & Outdoors | $295.57 | 255 | ★ 2.5 | 72 | BULK-fd2281e9 |
| 14444 | Bulk Product fb742b0d | Clothing | $547.00 | 186 | ★ 0.8 | 22 | BULK-141a62fe |
| 14445 | Bulk Product a56a61f4 | Toys & Games | $594.97 | 305 | ★ 3.0 | 7 | BULK-b33c0f6e |
| 14446 | Bulk Product 89c8f525 | Toys & Games | $402.85 | 445 | ★ 1.0 | 21 | BULK-b1fcf7f5 |
| 14447 | Bulk Product e0d23b64 | Sports & Outdoors | $446.15 | 14 | ★ 2.0 | 11 | BULK-067c5363 |
| 14448 | Bulk Product e1597377 | Sports & Outdoors | $894.30 | 351 | ★ 4.3 | 41 | BULK-56f1448b |
| 14449 | Bulk Product 32bf96d5 | Books | $308.45 | 352 | ★ 1.8 | 47 | BULK-fdd4e11f |
| 14450 | Bulk Product ff093fd9 | Clothing | $53.86 | 329 | ★ 4.6 | 41 | BULK-f4a18475 |
| 14451 | Bulk Product eb094f13 | Sports & Outdoors | $908.55 | 493 | ★ 0.8 | 62 | BULK-c5b559b4 |
| 14452 | Bulk Product a44df668 | Sports & Outdoors | $222.15 | 443 | ★ 0.3 | 8 | BULK-143c7407 |
| 14453 | Bulk Product d60dc59b | Books | $987.64 | 369 | ★ 3.2 | 41 | BULK-58a617cb |
| 14454 | Bulk Product c9f88762 | Home & Garden | $257.93 | 75 | ★ 0.4 | 82 | BULK-937d8b3f |
| 14455 | Bulk Product f1139b3e | Books | $85.86 | 195 | ★ 4.9 | 35 | BULK-8e21257b |
| 14456 | Bulk Product 4d2f8385 | Toys & Games | $507.43 | 259 | ★ 0.1 | 26 | BULK-3b89d8a0 |
| 14457 | Bulk Product 630d82af | Home & Garden | $266.05 | 421 | ★ 4.8 | 91 | BULK-9e3567bb |
| 14458 | Bulk Product aa70712d | Sports & Outdoors | $350.53 | 23 | ★ 0.2 | 16 | BULK-e3feda82 |
| 14459 | Bulk Product fb6998c7 | Sports & Outdoors | $996.98 | 155 | ★ 3.9 | 82 | BULK-245145bf |
// 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
};
}