Efficient pagination using OFFSET-FETCH on SQL Server.
| ID | Name | Category | Price | Stock | Rating | Reviews | SKU |
|---|---|---|---|---|---|---|---|
| 11010 | Bulk Product 87d85df4 | Electronics | $109.41 | 325 | ★ 3.4 | 48 | BULK-5c33425e |
| 11011 | Bulk Product a754c0da | Home & Garden | $381.35 | 411 | ★ 3.6 | 7 | BULK-3c18afd8 |
| 11012 | Bulk Product 534f76a5 | Toys & Games | $193.35 | 309 | ★ 3.3 | 22 | BULK-f168869a |
| 11013 | Bulk Product 1c136586 | Sports & Outdoors | $443.65 | 436 | ★ 0.2 | 83 | BULK-377edce6 |
| 11014 | Bulk Product 08bc6e09 | Toys & Games | $321.01 | 487 | ★ 0.0 | 59 | BULK-f91f03d4 |
| 11015 | Bulk Product 0c0a2b2d | Books | $96.51 | 153 | ★ 1.6 | 5 | BULK-ee36a433 |
| 11016 | Bulk Product f3456203 | Electronics | $561.19 | 263 | ★ 0.3 | 71 | BULK-4d5988af |
| 11017 | Bulk Product fa62c01e | Electronics | $820.20 | 29 | ★ 2.4 | 98 | BULK-31cb444a |
| 11018 | Bulk Product 6a7cbd28 | Books | $712.42 | 299 | ★ 4.7 | 34 | BULK-14566dc1 |
| 11019 | Bulk Product 76915e27 | Clothing | $932.29 | 361 | ★ 2.2 | 57 | BULK-0e86f6e7 |
| 11020 | Bulk Product 06ee9870 | Electronics | $213.19 | 495 | ★ 3.3 | 90 | BULK-0cf5e2a0 |
| 11021 | Bulk Product 1d5bf189 | Electronics | $394.59 | 403 | ★ 4.5 | 38 | BULK-52527bce |
| 11022 | Bulk Product 85691033 | Books | $162.92 | 472 | ★ 3.6 | 74 | BULK-4d760ce0 |
| 11023 | Bulk Product 39ca18d0 | Books | $511.02 | 168 | ★ 4.8 | 55 | BULK-0050724d |
| 11024 | Bulk Product 42a62e99 | Electronics | $206.08 | 64 | ★ 2.8 | 14 | BULK-7b4f0239 |
| 11025 | Bulk Product 379925de | Clothing | $782.00 | 230 | ★ 2.6 | 6 | BULK-2d1f5e51 |
| 11026 | Bulk Product 3f2692e7 | Electronics | $926.63 | 362 | ★ 4.8 | 57 | BULK-ce472710 |
| 11027 | Bulk Product 4eab9810 | Toys & Games | $49.44 | 249 | ★ 3.7 | 36 | BULK-50dce2e4 |
| 11028 | Bulk Product 42ed7cd6 | Home & Garden | $82.27 | 371 | ★ 1.0 | 12 | BULK-4812aa49 |
| 11029 | Bulk Product 191eba24 | Toys & Games | $411.34 | 41 | ★ 3.1 | 25 | BULK-8cd59527 |
| 11030 | Bulk Product a7d51f73 | Clothing | $28.80 | 431 | ★ 0.6 | 1 | BULK-41248636 |
| 11031 | Bulk Product 26773482 | Toys & Games | $105.54 | 390 | ★ 3.0 | 59 | BULK-5604a6ad |
| 11032 | Bulk Product f70ebd64 | Clothing | $895.15 | 40 | ★ 4.9 | 68 | BULK-55904561 |
| 11033 | Bulk Product 410869bf | Books | $429.36 | 248 | ★ 3.9 | 82 | BULK-3a01a299 |
| 11034 | Bulk Product 4d3265f5 | Clothing | $139.05 | 380 | ★ 2.8 | 83 | BULK-ddab48f3 |
| 11035 | Bulk Product f8efbb4f | Sports & Outdoors | $684.16 | 344 | ★ 1.9 | 32 | BULK-03edaef8 |
| 11036 | Bulk Product 39d13799 | Home & Garden | $264.42 | 410 | ★ 4.4 | 14 | BULK-be717994 |
| 11037 | Bulk Product f9f85db4 | Books | $392.71 | 333 | ★ 4.4 | 34 | BULK-9b566488 |
| 11038 | Bulk Product 0238ed0e | Toys & Games | $561.13 | 431 | ★ 4.0 | 9 | BULK-0c7b1a2f |
| 11039 | Bulk Product 18cc09f7 | Toys & Games | $724.45 | 378 | ★ 0.7 | 75 | BULK-01ec488f |
| 11040 | Bulk Product 1c0d6f10 | Clothing | $176.89 | 480 | ★ 1.1 | 77 | BULK-2cf7dd5c |
| 11041 | Bulk Product f5dd31e6 | Clothing | $681.52 | 429 | ★ 1.2 | 44 | BULK-d576a0ac |
| 11042 | Bulk Product b2128dd5 | Electronics | $201.80 | 23 | ★ 2.1 | 26 | BULK-07fc831c |
| 11043 | Bulk Product d42f56fa | Clothing | $827.75 | 183 | ★ 1.5 | 49 | BULK-ce9de674 |
| 11044 | Bulk Product 0b998bea | Books | $32.30 | 76 | ★ 1.4 | 72 | BULK-2f5de248 |
| 11045 | Bulk Product bb443b59 | Sports & Outdoors | $163.03 | 492 | ★ 0.7 | 9 | BULK-7e2d08d4 |
| 11046 | Bulk Product dd8955ee | Home & Garden | $296.05 | 393 | ★ 3.5 | 46 | BULK-a817dc3d |
| 11047 | Bulk Product 1e2f188a | Home & Garden | $443.99 | 308 | ★ 4.9 | 17 | BULK-67c87d10 |
| 11048 | Bulk Product 812b7a7b | Home & Garden | $81.56 | 280 | ★ 4.0 | 66 | BULK-e0afaf89 |
| 11049 | Bulk Product 0a04afff | Clothing | $532.29 | 21 | ★ 1.4 | 57 | BULK-a2365578 |
| 11050 | Bulk Product 2d25ed78 | Toys & Games | $748.11 | 107 | ★ 3.1 | 70 | BULK-5b9ac33c |
| 11051 | Bulk Product 24eb0bd9 | Home & Garden | $229.61 | 496 | ★ 0.6 | 43 | BULK-b2af967f |
| 11052 | Bulk Product 96da8714 | Sports & Outdoors | $64.97 | 33 | ★ 1.2 | 59 | BULK-459169e4 |
| 11053 | Bulk Product e85aec9c | Books | $722.93 | 408 | ★ 3.2 | 37 | BULK-e5ed0afa |
| 11054 | Bulk Product d20361aa | Toys & Games | $168.89 | 26 | ★ 2.4 | 47 | BULK-a23e5a57 |
| 11055 | Bulk Product ae449795 | Toys & Games | $864.75 | 307 | ★ 0.1 | 55 | BULK-d3347787 |
| 11056 | Bulk Product 58cbb1b1 | Toys & Games | $625.41 | 8 | ★ 2.4 | 10 | BULK-e8340f29 |
| 11057 | Bulk Product 53c79ed8 | Clothing | $958.39 | 363 | ★ 3.8 | 62 | BULK-c6b1f6cf |
| 11058 | Bulk Product abe885a2 | Toys & Games | $794.81 | 93 | ★ 4.2 | 66 | BULK-6afaf485 |
| 11059 | Bulk Product bafda3dd | Clothing | $907.64 | 154 | ★ 2.7 | 53 | BULK-e7a4aa8c |
// 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
};
}