Efficient pagination using OFFSET-FETCH on SQL Server.
| ID | Name | Category | Price | Stock | Rating | Reviews | SKU |
|---|---|---|---|---|---|---|---|
| 23385 | Bulk Product 06060d48 | Toys & Games | $667.87 | 50 | ★ 4.9 | 87 | BULK-8b7eef37 |
| 23386 | Bulk Product c7a83a71 | Toys & Games | $801.97 | 72 | ★ 4.5 | 96 | BULK-ddb85f66 |
| 23387 | Bulk Product 6db25de6 | Books | $327.88 | 233 | ★ 3.9 | 33 | BULK-09ce7b2a |
| 23388 | Bulk Product 3d4aa8b7 | Toys & Games | $455.51 | 220 | ★ 1.1 | 72 | BULK-b1eacd24 |
| 23389 | Bulk Product 9673b025 | Sports & Outdoors | $355.87 | 145 | ★ 1.3 | 7 | BULK-bb7d79bd |
| 23390 | Bulk Product bcf8494f | Home & Garden | $955.69 | 365 | ★ 4.3 | 61 | BULK-825a4d7b |
| 23391 | Bulk Product 6c3788d8 | Sports & Outdoors | $965.81 | 469 | ★ 1.2 | 6 | BULK-c4453b14 |
| 23392 | Bulk Product 45233d40 | Clothing | $22.35 | 491 | ★ 1.9 | 42 | BULK-3c51a268 |
| 23393 | Bulk Product 5a0bfb84 | Sports & Outdoors | $473.32 | 239 | ★ 1.0 | 95 | BULK-14958cf7 |
| 23394 | Bulk Product 7e312dcc | Home & Garden | $950.79 | 355 | ★ 5.0 | 40 | BULK-eef4445e |
| 23395 | Bulk Product a5123357 | Electronics | $458.04 | 111 | ★ 0.1 | 55 | BULK-dd0fc5a1 |
| 23396 | Bulk Product 0a5503c8 | Clothing | $816.13 | 1 | ★ 5.0 | 53 | BULK-6808db26 |
| 23397 | Bulk Product 8d6954fb | Toys & Games | $686.96 | 239 | ★ 2.8 | 48 | BULK-98635389 |
| 23398 | Bulk Product 04a29a9c | Sports & Outdoors | $919.88 | 427 | ★ 4.7 | 98 | BULK-13b23db8 |
| 23399 | Bulk Product 1f1e1ade | Sports & Outdoors | $342.50 | 333 | ★ 2.7 | 64 | BULK-61c2748f |
| 23400 | Bulk Product dbd6d9da | Toys & Games | $89.94 | 268 | ★ 2.4 | 40 | BULK-08c380ab |
| 23401 | Bulk Product 533eb877 | Home & Garden | $821.24 | 341 | ★ 3.4 | 13 | BULK-1d31898e |
| 23402 | Bulk Product 95c59c25 | Sports & Outdoors | $525.53 | 375 | ★ 2.8 | 51 | BULK-f46f164d |
| 23403 | Bulk Product 9e29dd83 | Books | $685.03 | 308 | ★ 4.0 | 90 | BULK-a45dae96 |
| 23404 | Bulk Product fa763c12 | Toys & Games | $321.87 | 64 | ★ 3.2 | 63 | BULK-653ad23f |
| 23405 | Bulk Product 8bba6776 | Sports & Outdoors | $260.78 | 316 | ★ 2.8 | 11 | BULK-084912b0 |
| 23406 | Bulk Product d6e9a57f | Toys & Games | $204.99 | 374 | ★ 1.8 | 26 | BULK-36342440 |
| 23407 | Bulk Product bbed0495 | Sports & Outdoors | $1,003.14 | 408 | ★ 3.3 | 20 | BULK-82e30d80 |
| 23408 | Bulk Product d212d691 | Home & Garden | $255.76 | 397 | ★ 2.5 | 23 | BULK-3b32dc9c |
| 23409 | Bulk Product 7bdb7bc2 | Sports & Outdoors | $194.84 | 34 | ★ 4.3 | 4 | BULK-dad77a09 |
// 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
};
}