Efficient pagination using OFFSET-FETCH on SQL Server.
| ID | Name | Category | Price | Stock | Rating | Reviews | SKU |
|---|---|---|---|---|---|---|---|
| 4105 | Mega Sports & Outdoors Product Special Edition | Sports & Outdoors | $316.86 | 428 | ★ 3.4 | 575 | SKU-004105 |
| 4106 | Ultra Electronics Product Special Edition | Electronics | $907.10 | 67 | ★ 1.6 | 904 | SKU-004106 |
| 4108 | Mega Sports & Outdoors Product Lite | Sports & Outdoors | $724.81 | 62 | ★ 1.9 | 124 | SKU-004108 |
| 4110 | Elite Sports & Outdoors Product Classic | Sports & Outdoors | $171.44 | 134 | ★ 1.2 | 78 | SKU-004110 |
| 4111 | Mega Sports & Outdoors Product Mini | Sports & Outdoors | $398.87 | 10 | ★ 2.3 | 212 | SKU-004111 |
| 4112 | Standard Books Product 2024 | Books | $497.05 | 370 | ★ 2.5 | 763 | SKU-004112 |
| 4115 | Deluxe Automotive Product Special Edition | Automotive | $301.20 | 38 | ★ 4.5 | 20 | SKU-004115 |
| 4116 | Super Books Product Classic | Books | $494.41 | 84 | ★ 2.4 | 396 | SKU-004116 |
| 4117 | Ultra Books Product Lite | Books | $466.72 | 402 | ★ 2.3 | 964 | SKU-004117 |
| 4118 | Economy Toys & Games Product Classic | Toys & Games | $908.72 | 278 | ★ 3.5 | 964 | SKU-004118 |
| 4119 | Professional Clothing Product 2024 | Clothing | $210.36 | 381 | ★ 3.1 | 454 | SKU-004119 |
| 4120 | Pro Clothing Product Lite | Clothing | $327.20 | 213 | ★ 2.7 | 575 | SKU-004120 |
| 4121 | Ultra Home & Garden Product Special Edition | Home & Garden | $575.25 | 216 | ★ 4.4 | 756 | SKU-004121 |
| 4122 | Deluxe Office Supplies Product Advanced | Office Supplies | $142.06 | 271 | ★ 3.9 | 299 | SKU-004122 |
| 4123 | Elite Electronics Product 2024 | Electronics | $301.90 | 496 | ★ 1.8 | 330 | SKU-004123 |
| 4124 | Super Health & Beauty Product XL | Health & Beauty | $305.12 | 112 | ★ 1.0 | 627 | SKU-004124 |
| 4126 | Mega Office Supplies Product 2024 | Office Supplies | $599.45 | 450 | ★ 2.9 | 19 | SKU-004126 |
| 4127 | Deluxe Home & Garden Product XL | Home & Garden | $418.25 | 291 | ★ 2.1 | 583 | SKU-004127 |
| 4128 | Standard Electronics Product Lite | Electronics | $159.46 | 262 | ★ 3.8 | 496 | SKU-004128 |
| 4130 | Ultra Clothing Product Advanced | Clothing | $46.01 | 97 | ★ 3.5 | 747 | SKU-004130 |
| 4131 | Elite Sports & Outdoors Product 2024 | Sports & Outdoors | $627.02 | 37 | ★ 4.1 | 436 | SKU-004131 |
| 4132 | Economy Office Supplies Product Special Edition | Office Supplies | $844.60 | 189 | ★ 3.0 | 237 | SKU-004132 |
| 4133 | Super Health & Beauty Product Advanced | Health & Beauty | $745.20 | 445 | ★ 1.2 | 320 | SKU-004133 |
| 4134 | Mega Toys & Games Product Special Edition | Toys & Games | $971.52 | 199 | ★ 1.8 | 632 | SKU-004134 |
| 4135 | Professional Office Supplies Product 2024 | Office Supplies | $917.72 | 375 | ★ 2.8 | 855 | SKU-004135 |
// 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
};
}