Efficient pagination using OFFSET-FETCH on SQL Server.
| ID | Name | Category | Price | Stock | Rating | Reviews | SKU |
|---|---|---|---|---|---|---|---|
| 2035 | Deluxe Home & Garden Product XL | Home & Garden | $457.89 | 201 | ★ 1.5 | 253 | SKU-002035 |
| 2036 | Professional Electronics Product Lite | Electronics | $389.02 | 152 | ★ 1.2 | 254 | SKU-002036 |
| 2037 | Professional Home & Garden Product XL | Home & Garden | $538.07 | 294 | ★ 2.4 | 292 | SKU-002037 |
| 2038 | Elite Sports & Outdoors Product Special Edition | Sports & Outdoors | $99.77 | 9 | ★ 2.4 | 347 | SKU-002038 |
| 2039 | Professional Electronics Product XL | Electronics | $419.57 | 76 | ★ 1.6 | 427 | SKU-002039 |
| 2040 | Pro Books Product Special Edition | Books | $598.35 | 275 | ★ 4.4 | 579 | SKU-002040 |
| 2041 | Pro Health & Beauty Product Max | Health & Beauty | $284.45 | 320 | ★ 4.8 | 495 | SKU-002041 |
| 2042 | Economy Sports & Outdoors Product Max | Sports & Outdoors | $647.07 | 408 | ★ 4.0 | 470 | SKU-002042 |
| 2043 | Ultra Electronics Product Advanced | Electronics | $896.58 | 222 | ★ 2.3 | 76 | SKU-002043 |
| 2044 | Economy Sports & Outdoors Product XL | Sports & Outdoors | $919.66 | 448 | ★ 1.0 | 229 | SKU-002044 |
| 2045 | Ultra Automotive Product 2024 | Automotive | $624.48 | 250 | ★ 1.9 | 477 | SKU-002045 |
| 2046 | Mega Sports & Outdoors Product 2024 | Sports & Outdoors | $861.96 | 166 | ★ 3.0 | 175 | SKU-002046 |
| 2047 | Pro Toys & Games Product Pro | Toys & Games | $202.22 | 118 | ★ 4.9 | 92 | SKU-002047 |
| 2048 | Premium Home & Garden Product Classic | Home & Garden | $457.71 | 301 | ★ 3.7 | 645 | SKU-002048 |
| 2049 | Ultra Clothing Product Plus | Clothing | $235.80 | 387 | ★ 4.1 | 587 | SKU-002049 |
| 2050 | Pro Books Product XL | Books | $342.76 | 492 | ★ 1.2 | 770 | SKU-002050 |
| 2051 | Standard Sports & Outdoors Product Advanced | Sports & Outdoors | $58.95 | 326 | ★ 1.6 | 334 | SKU-002051 |
| 2053 | Pro Toys & Games Product Max | Toys & Games | $680.25 | 293 | ★ 4.2 | 775 | SKU-002053 |
| 2054 | Mega Clothing Product Max | Clothing | $157.86 | 241 | ★ 1.4 | 203 | SKU-002054 |
| 2055 | Professional Clothing Product XL | Clothing | $323.65 | 314 | ★ 1.6 | 315 | SKU-002055 |
| 2056 | Economy Clothing Product Special Edition | Clothing | $743.65 | 393 | ★ 4.1 | 665 | SKU-002056 |
| 2057 | Mega Office Supplies Product 2024 | Office Supplies | $725.90 | 170 | ★ 3.2 | 623 | SKU-002057 |
| 2058 | Super Health & Beauty Product Special Edition | Health & Beauty | $557.24 | 251 | ★ 3.7 | 11 | SKU-002058 |
| 2059 | Super Health & Beauty Product Pro | Health & Beauty | $825.14 | 186 | ★ 4.0 | 843 | SKU-002059 |
| 2060 | Professional Health & Beauty Product 2024 | Health & Beauty | $983.22 | 87 | ★ 3.0 | 408 | SKU-002060 |
// 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
};
}