Efficient pagination using OFFSET-FETCH on SQL Server.
| ID | Name | Category | Price | Stock | Rating | Reviews | SKU |
|---|---|---|---|---|---|---|---|
| 3426 | Premium Toys & Games Product XL | Toys & Games | $731.48 | 426 | ★ 4.5 | 276 | SKU-003426 |
| 3427 | Standard Office Supplies Product XL | Office Supplies | $748.23 | 294 | ★ 4.8 | 636 | SKU-003427 |
| 3428 | Elite Books Product Lite | Books | $970.99 | 436 | ★ 3.8 | 540 | SKU-003428 |
| 3429 | Premium Clothing Product 2024 | Clothing | $125.53 | 110 | ★ 2.8 | 176 | SKU-003429 |
| 3430 | Super Sports & Outdoors Product Max | Sports & Outdoors | $551.07 | 431 | ★ 3.6 | 108 | SKU-003430 |
| 3431 | Pro Office Supplies Product Mini | Office Supplies | $36.03 | 492 | ★ 1.7 | 371 | SKU-003431 |
| 3432 | Premium Office Supplies Product Advanced | Office Supplies | $878.41 | 198 | ★ 3.9 | 863 | SKU-003432 |
| 3433 | Deluxe Health & Beauty Product Pro | Health & Beauty | $719.54 | 494 | ★ 1.8 | 24 | SKU-003433 |
| 3434 | Deluxe Home & Garden Product XL | Home & Garden | $112.98 | 279 | ★ 5.0 | 444 | SKU-003434 |
| 3435 | Elite Electronics Product Pro | Electronics | $323.41 | 395 | ★ 2.0 | 592 | SKU-003435 |
| 3436 | Standard Food & Grocery Product Classic | Food & Grocery | $444.17 | 312 | ★ 4.0 | 919 | SKU-003436 |
| 3437 | Super Health & Beauty Product Advanced | Health & Beauty | $562.28 | 84 | ★ 4.1 | 948 | SKU-003437 |
| 3438 | Standard Food & Grocery Product Max | Food & Grocery | $611.03 | 194 | ★ 3.4 | 203 | SKU-003438 |
| 3440 | Standard Toys & Games Product 2024 | Toys & Games | $344.00 | 125 | ★ 3.9 | 307 | SKU-003440 |
| 3441 | Ultra Clothing Product Mini | Clothing | $943.19 | 285 | ★ 3.0 | 320 | SKU-003441 |
| 3442 | Mega Books Product Pro | Books | $943.74 | 329 | ★ 1.8 | 355 | SKU-003442 |
| 3444 | Standard Health & Beauty Product Mini | Health & Beauty | $568.71 | 127 | ★ 3.4 | 674 | SKU-003444 |
| 3446 | Super Electronics Product Classic | Electronics | $779.68 | 246 | ★ 1.8 | 251 | SKU-003446 |
| 3448 | Economy Food & Grocery Product Max | Food & Grocery | $326.45 | 448 | ★ 4.7 | 804 | SKU-003448 |
| 3449 | Ultra Automotive Product Special Edition | Automotive | $228.49 | 261 | ★ 1.6 | 137 | SKU-003449 |
| 3450 | Economy Clothing Product Advanced | Clothing | $795.51 | 451 | ★ 2.3 | 272 | SKU-003450 |
| 3451 | Professional Office Supplies Product Pro | Office Supplies | $966.79 | 222 | ★ 3.2 | 324 | SKU-003451 |
| 3452 | Mega Home & Garden Product Max | Home & Garden | $471.76 | 232 | ★ 2.5 | 561 | SKU-003452 |
| 3453 | Economy Automotive Product Special Edition | Automotive | $773.13 | 4 | ★ 2.3 | 186 | SKU-003453 |
| 3454 | Economy Health & Beauty Product XL | Health & Beauty | $96.12 | 451 | ★ 2.4 | 505 | SKU-003454 |
// 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
};
}