Efficient pagination using OFFSET-FETCH on SQL Server.
| ID | Name | Category | Price | Stock | Rating | Reviews | SKU |
|---|---|---|---|---|---|---|---|
| 9310 | Bulk Product 1e39b3a7 | Sports & Outdoors | $746.18 | 49 | ★ 4.2 | 62 | BULK-eed86f53 |
| 9311 | Bulk Product dbf2f821 | Electronics | $329.77 | 199 | ★ 2.6 | 53 | BULK-54065a6f |
| 9312 | Bulk Product 86d473d7 | Sports & Outdoors | $997.79 | 181 | ★ 4.5 | 76 | BULK-3d6cb7c8 |
| 9313 | Bulk Product f93e7aa9 | Home & Garden | $420.20 | 326 | ★ 4.2 | 72 | BULK-de5a4cb3 |
| 9314 | Bulk Product e0037276 | Home & Garden | $16.90 | 348 | ★ 0.4 | 2 | BULK-4ba3ec8f |
| 9315 | Bulk Product dc2a3280 | Toys & Games | $193.79 | 248 | ★ 2.6 | 28 | BULK-3e1b6174 |
| 9316 | Bulk Product 6aefeb56 | Home & Garden | $568.43 | 478 | ★ 1.9 | 78 | BULK-bf47c6be |
| 9317 | Bulk Product afef4970 | Toys & Games | $882.67 | 346 | ★ 4.5 | 60 | BULK-671c1686 |
| 9318 | Bulk Product e71eab00 | Toys & Games | $460.33 | 60 | ★ 0.1 | 24 | BULK-d5c3344d |
| 9319 | Bulk Product cc73f463 | Home & Garden | $81.68 | 323 | ★ 0.9 | 93 | BULK-076911f4 |
| 9320 | Bulk Product 5464b185 | Home & Garden | $908.58 | 488 | ★ 0.1 | 18 | BULK-cdbc6f09 |
| 9321 | Bulk Product a984d986 | Books | $210.24 | 435 | ★ 0.8 | 79 | BULK-7b149cf9 |
| 9322 | Bulk Product 75b96cea | Sports & Outdoors | $509.99 | 410 | ★ 2.1 | 31 | BULK-29abcd7a |
| 9323 | Bulk Product 2103cff5 | Home & Garden | $252.60 | 66 | ★ 4.1 | 17 | BULK-482a34b6 |
| 9324 | Bulk Product 083cd2a8 | Sports & Outdoors | $1,001.68 | 278 | ★ 4.3 | 67 | BULK-fcad2c13 |
| 9325 | Bulk Product 98f79f36 | Electronics | $255.73 | 248 | ★ 4.0 | 83 | BULK-b342b3ff |
| 9326 | Bulk Product 50efa696 | Books | $829.99 | 344 | ★ 4.5 | 2 | BULK-6a5f39ef |
| 9327 | Bulk Product 7f6db982 | Sports & Outdoors | $885.30 | 223 | ★ 0.2 | 15 | BULK-b10b2d84 |
| 9328 | Bulk Product b7cab851 | Clothing | $881.60 | 83 | ★ 2.4 | 82 | BULK-4bc74a26 |
| 9329 | Bulk Product 72299f79 | Electronics | $437.90 | 170 | ★ 1.5 | 5 | BULK-41a74d6a |
| 9330 | Bulk Product f1588782 | Home & Garden | $40.44 | 329 | ★ 2.2 | 66 | BULK-20ff2fc6 |
| 9331 | Bulk Product eb5b9d77 | Sports & Outdoors | $104.28 | 250 | ★ 3.0 | 18 | BULK-2e661802 |
| 9332 | Bulk Product 21848b70 | Toys & Games | $120.33 | 395 | ★ 2.6 | 39 | BULK-76e38929 |
| 9333 | Bulk Product 2e7d145f | Electronics | $142.15 | 347 | ★ 2.2 | 10 | BULK-78687737 |
| 9334 | Bulk Product 7898d9f4 | Home & Garden | $443.69 | 240 | ★ 3.8 | 15 | BULK-cb4e7b8c |
// 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
};
}