Efficient pagination using OFFSET-FETCH on SQL Server.
| ID | Name | Category | Price | Stock | Rating | Reviews | SKU |
|---|---|---|---|---|---|---|---|
| 2061 | Elite Books Product Pro | Books | $575.90 | 247 | ★ 4.1 | 264 | SKU-002061 |
| 2062 | Premium Home & Garden Product Mini | Home & Garden | $90.32 | 149 | ★ 4.2 | 786 | SKU-002062 |
| 2063 | Mega Health & Beauty Product Mini | Health & Beauty | $664.61 | 150 | ★ 4.4 | 373 | SKU-002063 |
| 2064 | Super Sports & Outdoors Product Plus | Sports & Outdoors | $402.35 | 200 | ★ 1.0 | 483 | SKU-002064 |
| 2065 | Elite Office Supplies Product Special Edition | Office Supplies | $453.91 | 323 | ★ 4.9 | 301 | SKU-002065 |
| 2066 | Super Toys & Games Product Classic | Toys & Games | $696.71 | 493 | ★ 4.6 | 377 | SKU-002066 |
| 2067 | Economy Office Supplies Product 2024 | Office Supplies | $508.92 | 55 | ★ 3.5 | 394 | SKU-002067 |
| 2069 | Deluxe Electronics Product Plus | Electronics | $545.56 | 206 | ★ 3.5 | 636 | SKU-002069 |
| 2070 | Mega Health & Beauty Product Pro | Health & Beauty | $251.31 | 420 | ★ 2.0 | 566 | SKU-002070 |
| 2071 | Deluxe Office Supplies Product Classic | Office Supplies | $134.70 | 243 | ★ 2.4 | 391 | SKU-002071 |
| 2073 | Deluxe Sports & Outdoors Product Plus | Sports & Outdoors | $542.34 | 81 | ★ 2.0 | 563 | SKU-002073 |
| 2074 | Pro Home & Garden Product Advanced | Home & Garden | $438.45 | 343 | ★ 4.9 | 377 | SKU-002074 |
| 2075 | Elite Office Supplies Product Max | Office Supplies | $761.64 | 38 | ★ 4.5 | 163 | SKU-002075 |
| 2076 | Premium Sports & Outdoors Product Mini | Sports & Outdoors | $697.01 | 199 | ★ 1.2 | 402 | SKU-002076 |
| 2077 | Super Books Product XL | Books | $954.92 | 129 | ★ 1.2 | 712 | SKU-002077 |
| 2078 | Premium Sports & Outdoors Product Classic | Sports & Outdoors | $190.58 | 98 | ★ 3.1 | 709 | SKU-002078 |
| 2079 | Professional Toys & Games Product Pro | Toys & Games | $749.31 | 491 | ★ 3.0 | 417 | SKU-002079 |
| 2080 | Elite Food & Grocery Product Special Edition | Food & Grocery | $294.86 | 409 | ★ 1.4 | 670 | SKU-002080 |
| 2081 | Mega Office Supplies Product Plus | Office Supplies | $890.77 | 172 | ★ 1.7 | 928 | SKU-002081 |
| 2082 | Economy Electronics Product Plus | Electronics | $410.13 | 60 | ★ 1.5 | 891 | SKU-002082 |
| 2084 | Elite Health & Beauty Product Lite | Health & Beauty | $992.91 | 310 | ★ 2.3 | 915 | SKU-002084 |
| 2085 | Super Sports & Outdoors Product Special Edition | Sports & Outdoors | $507.41 | 157 | ★ 3.0 | 228 | SKU-002085 |
| 2086 | Premium Books Product Advanced | Books | $130.56 | 308 | ★ 2.2 | 334 | SKU-002086 |
| 2088 | Ultra Books Product Mini | Books | $424.98 | 222 | ★ 1.6 | 185 | SKU-002088 |
| 2089 | Elite Automotive Product 2024 | Automotive | $403.93 | 1 | ★ 3.6 | 962 | SKU-002089 |
// 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
};
}