Efficient pagination using OFFSET-FETCH on SQL Server.
| ID | Name | Category | Price | Stock | Rating | Reviews | SKU |
|---|---|---|---|---|---|---|---|
| 3676 | Standard Office Supplies Product Advanced | Office Supplies | $581.59 | 214 | ★ 2.7 | 669 | SKU-003676 |
| 3677 | Standard Sports & Outdoors Product XL | Sports & Outdoors | $532.20 | 299 | ★ 3.7 | 266 | SKU-003677 |
| 3678 | Super Sports & Outdoors Product 2024 | Sports & Outdoors | $104.21 | 452 | ★ 4.7 | 523 | SKU-003678 |
| 3679 | Mega Electronics Product Special Edition | Electronics | $280.13 | 255 | ★ 2.2 | 844 | SKU-003679 |
| 3680 | Professional Home & Garden Product 2024 | Home & Garden | $906.15 | 284 | ★ 4.9 | 2 | SKU-003680 |
| 3681 | Economy Toys & Games Product XL | Toys & Games | $41.20 | 449 | ★ 1.5 | 750 | SKU-003681 |
| 3682 | Economy Home & Garden Product Max | Home & Garden | $950.60 | 373 | ★ 2.9 | 918 | SKU-003682 |
| 3683 | Premium Home & Garden Product Pro | Home & Garden | $55.72 | 31 | ★ 2.5 | 792 | SKU-003683 |
| 3684 | Super Books Product Lite | Books | $285.13 | 123 | ★ 5.0 | 617 | SKU-003684 |
| 3685 | Premium Sports & Outdoors Product Pro | Sports & Outdoors | $337.90 | 447 | ★ 3.5 | 488 | SKU-003685 |
| 3686 | Elite Clothing Product Lite | Clothing | $651.35 | 55 | ★ 1.9 | 589 | SKU-003686 |
| 3687 | Elite Office Supplies Product Special Edition | Office Supplies | $447.50 | 31 | ★ 4.7 | 661 | SKU-003687 |
| 3688 | Mega Sports & Outdoors Product Mini | Sports & Outdoors | $753.19 | 175 | ★ 4.5 | 762 | SKU-003688 |
| 3689 | Pro Electronics Product Mini | Electronics | $937.09 | 476 | ★ 1.1 | 933 | SKU-003689 |
| 3690 | Standard Clothing Product Pro | Clothing | $893.42 | 79 | ★ 2.0 | 52 | SKU-003690 |
| 3691 | Elite Sports & Outdoors Product Pro | Sports & Outdoors | $948.42 | 7 | ★ 4.9 | 928 | SKU-003691 |
| 3693 | Ultra Books Product Max | Books | $923.36 | 330 | ★ 4.5 | 506 | SKU-003693 |
| 3694 | Premium Books Product Plus | Books | $620.34 | 358 | ★ 2.2 | 348 | SKU-003694 |
| 3695 | Standard Health & Beauty Product Special Edition | Health & Beauty | $356.06 | 411 | ★ 2.8 | 513 | SKU-003695 |
| 3696 | Standard Electronics Product 2024 | Electronics | $327.81 | 399 | ★ 3.6 | 165 | SKU-003696 |
| 3697 | Elite Sports & Outdoors Product Pro | Sports & Outdoors | $933.23 | 100 | ★ 1.8 | 481 | SKU-003697 |
| 3698 | Pro Toys & Games Product Plus | Toys & Games | $709.92 | 103 | ★ 3.8 | 219 | SKU-003698 |
| 3699 | Ultra Toys & Games Product Max | Toys & Games | $796.40 | 334 | ★ 1.5 | 607 | SKU-003699 |
| 3700 | Elite Electronics Product Advanced | Electronics | $166.99 | 137 | ★ 3.8 | 111 | SKU-003700 |
| 3701 | Premium Office Supplies Product Pro | Office Supplies | $980.48 | 15 | ★ 2.7 | 593 | SKU-003701 |
// 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
};
}