Efficient pagination using OFFSET-FETCH on SQL Server.
| ID | Name | Category | Price | Stock | Rating | Reviews | SKU |
|---|---|---|---|---|---|---|---|
| 20260 | Bulk Product f9750a59 | Books | $50.69 | 325 | ★ 3.3 | 67 | BULK-03cbbf58 |
| 20261 | Bulk Product 29ba8e99 | Electronics | $28.03 | 215 | ★ 0.7 | 84 | BULK-898c9f8c |
| 20262 | Bulk Product ee3292b0 | Sports & Outdoors | $433.79 | 190 | ★ 1.0 | 37 | BULK-0e53c3af |
| 20263 | Bulk Product 377fdf01 | Clothing | $260.46 | 281 | ★ 2.2 | 36 | BULK-d755b39e |
| 20264 | Bulk Product 7690572a | Electronics | $870.11 | 484 | ★ 1.2 | 71 | BULK-6f0662c4 |
| 20265 | Bulk Product fb4ed891 | Sports & Outdoors | $658.08 | 66 | ★ 2.9 | 40 | BULK-195b956b |
| 20266 | Bulk Product 3a973c72 | Toys & Games | $890.81 | 411 | ★ 4.0 | 24 | BULK-2760bbe5 |
| 20267 | Bulk Product 64bc7b08 | Electronics | $411.43 | 474 | ★ 3.8 | 41 | BULK-8505b486 |
| 20268 | Bulk Product 68004a25 | Home & Garden | $709.36 | 409 | ★ 0.6 | 25 | BULK-b8aea019 |
| 20269 | Bulk Product 7b2c35f4 | Toys & Games | $251.52 | 419 | ★ 1.4 | 16 | BULK-aa4727ed |
| 20270 | Bulk Product fe149b19 | Toys & Games | $424.10 | 324 | ★ 2.9 | 90 | BULK-791b6597 |
| 20271 | Bulk Product d395c64f | Sports & Outdoors | $619.11 | 194 | ★ 2.7 | 1 | BULK-3e3d1630 |
| 20272 | Bulk Product bad19d12 | Toys & Games | $877.18 | 310 | ★ 0.0 | 31 | BULK-eac338de |
| 20273 | Bulk Product 42d4cacf | Books | $572.32 | 285 | ★ 1.4 | 32 | BULK-81a55b9f |
| 20274 | Bulk Product 7dd1145a | Sports & Outdoors | $567.75 | 124 | ★ 4.4 | 91 | BULK-475decd7 |
| 20275 | Bulk Product 36238171 | Home & Garden | $369.16 | 282 | ★ 4.7 | 53 | BULK-e5f520da |
| 20276 | Bulk Product f455c4e5 | Books | $510.46 | 437 | ★ 2.1 | 93 | BULK-798d6a1c |
| 20277 | Bulk Product fdb3dcb0 | Books | $992.71 | 253 | ★ 0.8 | 13 | BULK-e3943e3d |
| 20278 | Bulk Product 7def1ff1 | Home & Garden | $328.79 | 26 | ★ 2.0 | 10 | BULK-1cd0a6a5 |
| 20279 | Bulk Product 66871e2c | Clothing | $677.25 | 85 | ★ 0.3 | 18 | BULK-9455a73e |
| 20280 | Bulk Product b3fd3872 | Home & Garden | $982.52 | 368 | ★ 2.0 | 68 | BULK-9f5a1ee6 |
| 20281 | Bulk Product 4ef3a46b | Electronics | $765.92 | 312 | ★ 4.4 | 74 | BULK-08b700e4 |
| 20282 | Bulk Product e82cb192 | Sports & Outdoors | $23.11 | 169 | ★ 0.3 | 55 | BULK-c8856eab |
| 20283 | Bulk Product 9f1b8eb0 | Home & Garden | $869.86 | 464 | ★ 2.9 | 12 | BULK-64a92cc8 |
| 20284 | Bulk Product 844a422c | Toys & Games | $155.82 | 167 | ★ 3.1 | 86 | BULK-06aeb32c |
| 20285 | Bulk Product c48cc1cf | Toys & Games | $406.41 | 215 | ★ 2.7 | 69 | BULK-b9e488fa |
| 20286 | Bulk Product e08313ab | Electronics | $439.08 | 404 | ★ 0.5 | 74 | BULK-135bf68e |
| 20287 | Bulk Product b68071b4 | Clothing | $824.39 | 220 | ★ 2.0 | 31 | BULK-0cb32807 |
| 20288 | Bulk Product 02a7196b | Books | $351.96 | 467 | ★ 1.4 | 21 | BULK-6835c86a |
| 20289 | Bulk Product becc6c7d | Clothing | $73.99 | 38 | ★ 0.2 | 88 | BULK-8eb325fc |
| 20290 | Bulk Product beb63966 | Clothing | $847.69 | 309 | ★ 4.8 | 96 | BULK-90ec1600 |
| 20291 | Bulk Product 6899b681 | Sports & Outdoors | $704.49 | 326 | ★ 1.5 | 73 | BULK-23e2a501 |
| 20292 | Bulk Product 2aee2a67 | Electronics | $658.53 | 296 | ★ 0.4 | 24 | BULK-69cdf382 |
| 20293 | Bulk Product 421fbf69 | Toys & Games | $90.25 | 124 | ★ 3.4 | 6 | BULK-8606b138 |
| 20294 | Bulk Product 2e9dbeee | Electronics | $590.02 | 86 | ★ 1.5 | 75 | BULK-310b2b70 |
| 20295 | Bulk Product cbfd6a6f | Home & Garden | $923.40 | 489 | ★ 4.4 | 18 | BULK-ecf64a08 |
| 20296 | Bulk Product a24ff7f7 | Clothing | $740.60 | 194 | ★ 1.4 | 34 | BULK-20cb853f |
| 20297 | Bulk Product be786d01 | Sports & Outdoors | $300.25 | 436 | ★ 0.7 | 53 | BULK-83629aae |
| 20298 | Bulk Product 98828080 | Sports & Outdoors | $39.69 | 136 | ★ 2.7 | 21 | BULK-a88826ca |
| 20299 | Bulk Product 6548883d | Sports & Outdoors | $413.66 | 316 | ★ 3.4 | 32 | BULK-3d56da98 |
| 20300 | Bulk Product 3dd85102 | Clothing | $536.85 | 286 | ★ 0.0 | 65 | BULK-ecd0da15 |
| 20301 | Bulk Product f32cd63f | Electronics | $116.62 | 35 | ★ 1.2 | 95 | BULK-9ed65df8 |
| 20302 | Bulk Product 0b2b1453 | Home & Garden | $754.45 | 413 | ★ 2.8 | 53 | BULK-4064bbc3 |
| 20303 | Bulk Product ca14715d | Home & Garden | $269.40 | 181 | ★ 0.9 | 34 | BULK-7a89c822 |
| 20304 | Bulk Product 3aa33f32 | Electronics | $758.90 | 251 | ★ 1.6 | 58 | BULK-d2db0f69 |
| 20305 | Bulk Product 6d0514b0 | Electronics | $84.65 | 239 | ★ 3.9 | 44 | BULK-c8179dd9 |
| 20306 | Bulk Product 80f4d880 | Clothing | $804.40 | 213 | ★ 1.9 | 37 | BULK-09f14f97 |
| 20307 | Bulk Product ffadc538 | Books | $704.70 | 308 | ★ 1.2 | 84 | BULK-a8183bdc |
| 20308 | Bulk Product 7464d9cc | Sports & Outdoors | $880.51 | 445 | ★ 0.3 | 68 | BULK-94717c2f |
| 20309 | Bulk Product 3842faf3 | Toys & Games | $707.57 | 165 | ★ 0.3 | 23 | BULK-3efc37e4 |
// 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
};
}