Efficient pagination using OFFSET-FETCH on SQL Server.
| ID | Name | Category | Price | Stock | Rating | Reviews | SKU |
|---|---|---|---|---|---|---|---|
| 14035 | Bulk Product 761ad82b | Clothing | $224.18 | 418 | ★ 4.3 | 54 | BULK-43466547 |
| 14036 | Bulk Product 106265b4 | Toys & Games | $225.58 | 214 | ★ 4.1 | 24 | BULK-00219f4c |
| 14037 | Bulk Product 372f11b1 | Clothing | $508.00 | 433 | ★ 0.2 | 39 | BULK-c4ef8ad6 |
| 14038 | Bulk Product e4b88578 | Electronics | $627.81 | 198 | ★ 0.6 | 84 | BULK-70a96bfd |
| 14039 | Bulk Product f2645002 | Sports & Outdoors | $353.08 | 248 | ★ 4.0 | 39 | BULK-074ca4c1 |
| 14040 | Bulk Product 63ae6d2e | Home & Garden | $711.95 | 53 | ★ 1.7 | 2 | BULK-b4666d5d |
| 14041 | Bulk Product 1f2c72a8 | Sports & Outdoors | $989.77 | 103 | ★ 3.2 | 14 | BULK-3c0112a1 |
| 14042 | Bulk Product 91d65e2a | Clothing | $916.40 | 394 | ★ 0.7 | 21 | BULK-6b0db453 |
| 14043 | Bulk Product 59274c32 | Books | $325.41 | 33 | ★ 1.5 | 16 | BULK-6ffe24eb |
| 14044 | Bulk Product 34631483 | Electronics | $795.94 | 12 | ★ 0.9 | 47 | BULK-7835e969 |
| 14045 | Bulk Product 1b675b1a | Home & Garden | $171.03 | 222 | ★ 3.4 | 6 | BULK-ebd12fdf |
| 14046 | Bulk Product 71edd675 | Home & Garden | $297.19 | 20 | ★ 4.6 | 53 | BULK-ce6f2573 |
| 14047 | Bulk Product 2ca24dee | Home & Garden | $729.22 | 113 | ★ 4.2 | 11 | BULK-92b288ae |
| 14048 | Bulk Product ed91d262 | Sports & Outdoors | $528.44 | 8 | ★ 4.3 | 7 | BULK-4add9f27 |
| 14049 | Bulk Product 2dd44c0c | Sports & Outdoors | $394.20 | 38 | ★ 0.4 | 52 | BULK-72a7409e |
| 14050 | Bulk Product 60b2f6be | Toys & Games | $841.92 | 35 | ★ 0.6 | 70 | BULK-58f3ab15 |
| 14051 | Bulk Product fb847f3f | Electronics | $718.73 | 208 | ★ 2.0 | 28 | BULK-2b3e8715 |
| 14052 | Bulk Product b34d3daa | Sports & Outdoors | $709.15 | 123 | ★ 3.9 | 9 | BULK-3831f211 |
| 14053 | Bulk Product 597298aa | Toys & Games | $694.89 | 241 | ★ 4.5 | 57 | BULK-c9333208 |
| 14054 | Bulk Product fd806221 | Electronics | $210.66 | 457 | ★ 1.4 | 35 | BULK-b02a2cb2 |
| 14055 | Bulk Product ed187017 | Toys & Games | $859.59 | 30 | ★ 1.1 | 47 | BULK-dc749480 |
| 14056 | Bulk Product fd97e8d4 | Home & Garden | $526.35 | 280 | ★ 1.8 | 28 | BULK-340d0c1e |
| 14057 | Bulk Product d0fd68bb | Electronics | $872.26 | 162 | ★ 3.9 | 60 | BULK-66ef3360 |
| 14058 | Bulk Product 2c901286 | Books | $252.49 | 226 | ★ 2.8 | 87 | BULK-8a2f0cd4 |
| 14059 | Bulk Product 62f11862 | Toys & Games | $565.11 | 289 | ★ 3.9 | 21 | BULK-ccfe5739 |
// 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
};
}