Efficient pagination using OFFSET-FETCH on SQL Server.
| ID | Name | Category | Price | Stock | Rating | Reviews | SKU |
|---|---|---|---|---|---|---|---|
| 6235 | Bulk Product 57ec0f50 | Books | $32.44 | 137 | ★ 2.1 | 35 | BULK-2c79b6ee |
| 6236 | Bulk Product 4b281b6a | Toys & Games | $523.77 | 105 | ★ 3.2 | 78 | BULK-a4897f4b |
| 6237 | Bulk Product 49729384 | Home & Garden | $277.28 | 215 | ★ 0.6 | 56 | BULK-5a69479d |
| 6238 | Bulk Product 07f0bc72 | Toys & Games | $421.13 | 251 | ★ 3.4 | 68 | BULK-e1a23d43 |
| 6239 | Bulk Product e194b6ac | Clothing | $654.22 | 332 | ★ 1.9 | 56 | BULK-3780ea2d |
| 6240 | Bulk Product b33fa9e3 | Electronics | $649.27 | 373 | ★ 0.6 | 70 | BULK-1247650f |
| 6241 | Bulk Product cbf37716 | Books | $704.55 | 172 | ★ 0.6 | 18 | BULK-d9f6e48d |
| 6242 | Bulk Product 732bf799 | Electronics | $738.36 | 331 | ★ 3.7 | 6 | BULK-94eb6dbe |
| 6243 | Bulk Product 99f5aa37 | Books | $929.27 | 99 | ★ 3.6 | 82 | BULK-e16f1330 |
| 6244 | Bulk Product c2a072a9 | Toys & Games | $445.49 | 299 | ★ 4.3 | 7 | BULK-bcbac899 |
| 6245 | Bulk Product 0ad69024 | Electronics | $212.76 | 393 | ★ 0.9 | 37 | BULK-492737e0 |
| 6246 | Bulk Product fb95ab53 | Clothing | $383.55 | 65 | ★ 3.0 | 67 | BULK-1e64aa86 |
| 6247 | Bulk Product 296cce9a | Toys & Games | $890.17 | 391 | ★ 0.7 | 94 | BULK-3fe8ae64 |
| 6248 | Bulk Product 253f0b46 | Electronics | $703.47 | 220 | ★ 1.9 | 73 | BULK-e5cf0f89 |
| 6249 | Bulk Product 6948f81b | Toys & Games | $429.37 | 13 | ★ 1.5 | 15 | BULK-bd2c279c |
| 6250 | Bulk Product 2fd016f0 | Home & Garden | $341.97 | 320 | ★ 4.2 | 75 | BULK-22506ab5 |
| 6251 | Bulk Product 9e516a5e | Home & Garden | $720.37 | 130 | ★ 4.5 | 27 | BULK-c83834b7 |
| 6252 | Bulk Product 25b90ac5 | Toys & Games | $480.47 | 268 | ★ 0.6 | 70 | BULK-2d63fd09 |
| 6253 | Bulk Product 9fd4db9e | Books | $796.88 | 467 | ★ 4.6 | 55 | BULK-cc0e7976 |
| 6254 | Bulk Product f79f058b | Home & Garden | $692.69 | 89 | ★ 2.4 | 46 | BULK-cc024b3d |
| 6255 | Bulk Product b48b0487 | Toys & Games | $351.27 | 316 | ★ 4.8 | 33 | BULK-efc723f1 |
| 6256 | Bulk Product bac31c88 | Sports & Outdoors | $213.45 | 491 | ★ 2.8 | 74 | BULK-5a8a77a7 |
| 6257 | Bulk Product 6de7ca38 | Home & Garden | $985.39 | 152 | ★ 3.1 | 94 | BULK-e55aa057 |
| 6258 | Bulk Product 8ff2bcb8 | Sports & Outdoors | $571.29 | 246 | ★ 1.2 | 24 | BULK-d0bb12c0 |
| 6259 | Bulk Product 8972cdf8 | Home & Garden | $58.32 | 121 | ★ 1.7 | 28 | BULK-1bd64392 |
// 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
};
}