Efficient pagination using OFFSET-FETCH on SQL Server.
| ID | Name | Category | Price | Stock | Rating | Reviews | SKU |
|---|---|---|---|---|---|---|---|
| 6210 | Bulk Product 6c2e9fec | Electronics | $366.25 | 314 | ★ 2.0 | 59 | BULK-002bf24f |
| 6211 | Bulk Product 3b9a59bc | Electronics | $542.02 | 111 | ★ 2.2 | 86 | BULK-e59aaf73 |
| 6212 | Bulk Product 4878eaa6 | Toys & Games | $366.13 | 180 | ★ 3.0 | 73 | BULK-b351f67a |
| 6213 | Bulk Product c09e8eb4 | Toys & Games | $652.01 | 374 | ★ 2.3 | 44 | BULK-21e155d0 |
| 6214 | Bulk Product 149b39b7 | Sports & Outdoors | $184.87 | 414 | ★ 2.9 | 14 | BULK-d6e9f4cb |
| 6215 | Bulk Product 2d2bf5ee | Electronics | $931.68 | 196 | ★ 4.0 | 10 | BULK-82054587 |
| 6216 | Bulk Product fb38597b | Home & Garden | $24.32 | 411 | ★ 4.2 | 12 | BULK-90ceddd6 |
| 6217 | Bulk Product d780c12a | Toys & Games | $402.42 | 146 | ★ 5.0 | 89 | BULK-751592e6 |
| 6218 | Bulk Product 24343d22 | Sports & Outdoors | $735.98 | 447 | ★ 2.3 | 55 | BULK-cda26e2d |
| 6219 | Bulk Product e1733599 | Toys & Games | $965.01 | 98 | ★ 3.3 | 79 | BULK-7d510947 |
| 6220 | Bulk Product 833f19a0 | Toys & Games | $400.40 | 317 | ★ 4.2 | 84 | BULK-bc93e931 |
| 6221 | Bulk Product 8e21f360 | Clothing | $22.22 | 138 | ★ 1.6 | 84 | BULK-bcc53668 |
| 6222 | Bulk Product 596e10c6 | Books | $261.67 | 237 | ★ 0.3 | 39 | BULK-b2ee5144 |
| 6223 | Bulk Product 9042f5f9 | Home & Garden | $742.45 | 137 | ★ 3.3 | 3 | BULK-95f987b9 |
| 6224 | Bulk Product d6fff785 | Toys & Games | $955.61 | 315 | ★ 4.6 | 41 | BULK-6fb1f3b6 |
| 6225 | Bulk Product 746b7e25 | Toys & Games | $293.97 | 129 | ★ 3.9 | 62 | BULK-366a06ef |
| 6226 | Bulk Product 10c1b5a1 | Sports & Outdoors | $318.11 | 21 | ★ 3.6 | 89 | BULK-ccdc49fe |
| 6227 | Bulk Product e24c7a4d | Clothing | $438.64 | 405 | ★ 4.8 | 3 | BULK-99171622 |
| 6228 | Bulk Product a09f6850 | Sports & Outdoors | $858.92 | 487 | ★ 2.6 | 1 | BULK-9f24d71d |
| 6229 | Bulk Product 0be6232d | Toys & Games | $56.12 | 221 | ★ 2.4 | 13 | BULK-1fa3fa67 |
| 6230 | Bulk Product d0606ce4 | Sports & Outdoors | $947.41 | 463 | ★ 3.2 | 76 | BULK-c52d468c |
| 6231 | Bulk Product 4cd04f0f | Books | $765.02 | 114 | ★ 4.7 | 77 | BULK-477b2d08 |
| 6232 | Bulk Product d0ef2041 | Clothing | $291.17 | 101 | ★ 0.7 | 46 | BULK-bb45de33 |
| 6233 | Bulk Product b5cda77c | Home & Garden | $392.10 | 80 | ★ 4.3 | 40 | BULK-fd7b59d6 |
| 6234 | Bulk Product a3548101 | Home & Garden | $260.14 | 234 | ★ 1.9 | 9 | BULK-9e00fb8d |
// 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
};
}