Efficient pagination using OFFSET-FETCH on SQL Server.
| ID | Name | Category | Price | Stock | Rating | Reviews | SKU |
|---|---|---|---|---|---|---|---|
| 2447 | Deluxe Food & Grocery Product Pro | Food & Grocery | $597.67 | 183 | ★ 3.3 | 0 | SKU-002447 |
| 2448 | Professional Electronics Product Pro | Electronics | $408.17 | 329 | ★ 2.6 | 65 | SKU-002448 |
| 2449 | Economy Health & Beauty Product Max | Health & Beauty | $734.50 | 28 | ★ 4.6 | 550 | SKU-002449 |
| 2450 | Mega Food & Grocery Product Pro | Food & Grocery | $522.26 | 16 | ★ 1.6 | 726 | SKU-002450 |
| 2451 | Mega Toys & Games Product Advanced | Toys & Games | $118.92 | 31 | ★ 2.9 | 884 | SKU-002451 |
| 2452 | Standard Clothing Product Special Edition | Clothing | $765.78 | 123 | ★ 1.2 | 508 | SKU-002452 |
| 2453 | Professional Food & Grocery Product Mini | Food & Grocery | $930.14 | 217 | ★ 3.0 | 90 | SKU-002453 |
| 2455 | Premium Office Supplies Product Mini | Office Supplies | $77.93 | 373 | ★ 3.0 | 694 | SKU-002455 |
| 2456 | Professional Books Product Special Edition | Books | $510.53 | 93 | ★ 4.9 | 422 | SKU-002456 |
| 2457 | Pro Food & Grocery Product Lite | Food & Grocery | $419.20 | 13 | ★ 2.4 | 409 | SKU-002457 |
| 2458 | Pro Clothing Product Advanced | Clothing | $521.34 | 452 | ★ 3.9 | 248 | SKU-002458 |
| 2459 | Professional Electronics Product Advanced | Electronics | $466.77 | 224 | ★ 3.7 | 26 | SKU-002459 |
| 2460 | Super Electronics Product Special Edition | Electronics | $332.94 | 114 | ★ 3.4 | 286 | SKU-002460 |
| 2461 | Pro Books Product Classic | Books | $724.48 | 283 | ★ 2.4 | 413 | SKU-002461 |
| 2463 | Pro Health & Beauty Product Classic | Health & Beauty | $136.90 | 374 | ★ 4.4 | 725 | SKU-002463 |
| 2465 | Ultra Food & Grocery Product Classic | Food & Grocery | $448.85 | 227 | ★ 3.4 | 397 | SKU-002465 |
| 2466 | Standard Books Product Plus | Books | $941.97 | 227 | ★ 3.0 | 300 | SKU-002466 |
| 2468 | Economy Electronics Product Pro | Electronics | $777.40 | 473 | ★ 1.9 | 858 | SKU-002468 |
| 2469 | Standard Home & Garden Product Lite | Home & Garden | $814.77 | 199 | ★ 1.9 | 977 | SKU-002469 |
| 2470 | Economy Food & Grocery Product Plus | Food & Grocery | $245.26 | 341 | ★ 2.2 | 912 | SKU-002470 |
| 2472 | Ultra Sports & Outdoors Product XL | Sports & Outdoors | $84.62 | 494 | ★ 1.1 | 658 | SKU-002472 |
| 2473 | Deluxe Sports & Outdoors Product Max | Sports & Outdoors | $690.22 | 48 | ★ 3.2 | 133 | SKU-002473 |
| 2474 | Deluxe Sports & Outdoors Product Plus | Sports & Outdoors | $505.37 | 378 | ★ 1.2 | 183 | SKU-002474 |
| 2475 | Elite Electronics Product 2024 | Electronics | $917.06 | 101 | ★ 3.9 | 940 | SKU-002475 |
| 2476 | Super Home & Garden Product Lite | Home & Garden | $151.20 | 44 | ★ 2.6 | 206 | SKU-002476 |
// 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
};
}