Efficient pagination using OFFSET-FETCH on SQL Server.
| ID | Name | Category | Price | Stock | Rating | Reviews | SKU |
|---|---|---|---|---|---|---|---|
| 8960 | Bulk Product 71be94b8 | Books | $569.40 | 264 | ★ 3.0 | 96 | BULK-e34c0d7d |
| 8961 | Bulk Product 333e86b5 | Toys & Games | $324.59 | 206 | ★ 4.1 | 65 | BULK-baae0532 |
| 8962 | Bulk Product f2985d8d | Home & Garden | $446.69 | 242 | ★ 4.9 | 20 | BULK-907c41f3 |
| 8963 | Bulk Product 3a8d41a7 | Sports & Outdoors | $478.58 | 376 | ★ 3.7 | 33 | BULK-0f90409b |
| 8964 | Bulk Product fe23c59b | Electronics | $613.86 | 195 | ★ 1.5 | 16 | BULK-f0b9da75 |
| 8965 | Bulk Product 5a21113b | Books | $371.07 | 309 | ★ 0.1 | 80 | BULK-4dcfdb19 |
| 8966 | Bulk Product 8a7fc47c | Toys & Games | $599.29 | 295 | ★ 2.0 | 58 | BULK-2b190ae3 |
| 8967 | Bulk Product e7d3013d | Toys & Games | $581.95 | 179 | ★ 4.4 | 19 | BULK-87531475 |
| 8968 | Bulk Product e409b1d8 | Clothing | $66.60 | 60 | ★ 3.1 | 68 | BULK-190ae451 |
| 8969 | Bulk Product bcbe4a17 | Home & Garden | $40.85 | 2 | ★ 1.9 | 7 | BULK-b37ab071 |
| 8970 | Bulk Product b38e384c | Home & Garden | $209.53 | 374 | ★ 3.6 | 29 | BULK-bd18c7c8 |
| 8971 | Bulk Product 9f6b51dd | Toys & Games | $771.40 | 483 | ★ 3.5 | 37 | BULK-08888a46 |
| 8972 | Bulk Product a769c11d | Sports & Outdoors | $563.65 | 361 | ★ 3.0 | 21 | BULK-b348fd02 |
| 8973 | Bulk Product 2161023d | Books | $706.22 | 67 | ★ 4.1 | 42 | BULK-6b59c6ce |
| 8974 | Bulk Product b6e05d87 | Clothing | $691.02 | 405 | ★ 2.5 | 57 | BULK-c11201a0 |
| 8975 | Bulk Product 3849b4b5 | Clothing | $18.68 | 186 | ★ 0.1 | 33 | BULK-3d888966 |
| 8976 | Bulk Product b63d69d0 | Electronics | $930.88 | 458 | ★ 0.8 | 7 | BULK-ca5ea0bc |
| 8977 | Bulk Product a7689689 | Clothing | $351.42 | 303 | ★ 1.2 | 8 | BULK-95b60941 |
| 8978 | Bulk Product e640c191 | Home & Garden | $813.42 | 87 | ★ 1.0 | 1 | BULK-51e15b65 |
| 8979 | Bulk Product e0d2dab3 | Electronics | $808.42 | 216 | ★ 3.4 | 12 | BULK-10e0f864 |
| 8980 | Bulk Product d855adda | Home & Garden | $829.11 | 197 | ★ 0.0 | 74 | BULK-957d2217 |
| 8981 | Bulk Product 0817f78a | Toys & Games | $398.92 | 307 | ★ 3.4 | 0 | BULK-994939d3 |
| 8982 | Bulk Product aa759c71 | Sports & Outdoors | $53.14 | 485 | ★ 3.0 | 1 | BULK-82da164f |
| 8983 | Bulk Product 39ac54c7 | Clothing | $615.91 | 381 | ★ 1.1 | 11 | BULK-7f4366d6 |
| 8984 | Bulk Product bfed2dbf | Clothing | $947.79 | 139 | ★ 1.1 | 35 | BULK-e6de3813 |
// 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
};
}