Efficient pagination using OFFSET-FETCH on SQL Server.
| ID | Name | Category | Price | Stock | Rating | Reviews | SKU |
|---|---|---|---|---|---|---|---|
| 4593 | Ultra Electronics Product 2024 | Electronics | $679.52 | 463 | ★ 3.6 | 616 | SKU-004593 |
| 4594 | Deluxe Electronics Product Pro | Electronics | $943.76 | 164 | ★ 4.5 | 356 | SKU-004594 |
| 4595 | Ultra Automotive Product Advanced | Automotive | $561.09 | 440 | ★ 5.0 | 579 | SKU-004595 |
| 4596 | Professional Electronics Product Plus | Electronics | $555.98 | 428 | ★ 4.6 | 692 | SKU-004596 |
| 4597 | Elite Office Supplies Product Classic | Office Supplies | $567.04 | 211 | ★ 4.2 | 715 | SKU-004597 |
| 4598 | Elite Food & Grocery Product Max | Food & Grocery | $669.80 | 486 | ★ 1.1 | 624 | SKU-004598 |
| 4599 | Professional Sports & Outdoors Product Pro | Sports & Outdoors | $481.22 | 337 | ★ 2.9 | 201 | SKU-004599 |
| 4600 | Super Toys & Games Product Special Edition | Toys & Games | $875.72 | 454 | ★ 2.6 | 875 | SKU-004600 |
| 4601 | Ultra Food & Grocery Product Mini | Food & Grocery | $631.42 | 28 | ★ 1.7 | 184 | SKU-004601 |
| 4602 | Super Toys & Games Product Classic | Toys & Games | $776.50 | 473 | ★ 4.2 | 38 | SKU-004602 |
| 4604 | Standard Food & Grocery Product Plus | Food & Grocery | $622.71 | 147 | ★ 3.7 | 532 | SKU-004604 |
| 4605 | Premium Sports & Outdoors Product Plus | Sports & Outdoors | $15.75 | 388 | ★ 3.6 | 230 | SKU-004605 |
| 4607 | Deluxe Books Product Lite | Books | $222.92 | 283 | ★ 2.5 | 35 | SKU-004607 |
| 4608 | Ultra Books Product Mini | Books | $19.31 | 388 | ★ 4.1 | 68 | SKU-004608 |
| 4609 | Pro Home & Garden Product Pro | Home & Garden | $479.09 | 203 | ★ 1.4 | 955 | SKU-004609 |
| 4610 | Deluxe Books Product Plus | Books | $624.17 | 457 | ★ 1.1 | 334 | SKU-004610 |
| 4611 | Super Home & Garden Product Plus | Home & Garden | $419.35 | 50 | ★ 1.7 | 744 | SKU-004611 |
| 4612 | Mega Sports & Outdoors Product Classic | Sports & Outdoors | $356.06 | 24 | ★ 3.9 | 645 | SKU-004612 |
| 4613 | Pro Electronics Product Max | Electronics | $823.42 | 281 | ★ 2.0 | 804 | SKU-004613 |
| 4614 | Ultra Books Product Special Edition | Books | $434.52 | 22 | ★ 4.1 | 986 | SKU-004614 |
| 4615 | Pro Books Product XL | Books | $160.52 | 402 | ★ 4.6 | 117 | SKU-004615 |
| 4616 | Super Sports & Outdoors Product Mini | Sports & Outdoors | $919.71 | 122 | ★ 3.5 | 336 | SKU-004616 |
| 4617 | Ultra Automotive Product Mini | Automotive | $618.43 | 200 | ★ 4.2 | 992 | SKU-004617 |
| 4618 | Deluxe Sports & Outdoors Product Plus | Sports & Outdoors | $808.07 | 254 | ★ 2.3 | 17 | SKU-004618 |
| 4620 | Deluxe Clothing Product Pro | Clothing | $290.40 | 28 | ★ 2.4 | 240 | SKU-004620 |
// 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
};
}