Efficient pagination using OFFSET-FETCH on SQL Server.
| ID | Name | Category | Price | Stock | Rating | Reviews | SKU |
|---|---|---|---|---|---|---|---|
| 18210 | Bulk Product 0ea60ca7 | Sports & Outdoors | $831.66 | 3 | ★ 1.5 | 48 | BULK-1fb8550f |
| 18211 | Bulk Product 4badf915 | Home & Garden | $710.10 | 91 | ★ 3.8 | 41 | BULK-6a305fad |
| 18212 | Bulk Product f55056d2 | Clothing | $961.52 | 181 | ★ 3.6 | 77 | BULK-a4c537ea |
| 18213 | Bulk Product 57a6cb43 | Electronics | $32.69 | 167 | ★ 1.2 | 79 | BULK-4a95c1f5 |
| 18214 | Bulk Product 0d428d99 | Toys & Games | $517.46 | 334 | ★ 4.4 | 52 | BULK-6dd4d962 |
| 18215 | Bulk Product c3179c9e | Home & Garden | $529.88 | 14 | ★ 3.5 | 48 | BULK-92338866 |
| 18216 | Bulk Product 78fbd725 | Clothing | $748.71 | 230 | ★ 2.0 | 57 | BULK-9cd693be |
| 18217 | Bulk Product cf3038e0 | Home & Garden | $429.55 | 433 | ★ 2.8 | 61 | BULK-3d20c61e |
| 18218 | Bulk Product 38355380 | Electronics | $833.05 | 357 | ★ 2.0 | 95 | BULK-d96818f9 |
| 18219 | Bulk Product 30b5a08e | Electronics | $709.03 | 207 | ★ 1.4 | 19 | BULK-77d78798 |
| 18220 | Bulk Product 1092c407 | Clothing | $630.54 | 375 | ★ 2.5 | 53 | BULK-06b20c6e |
| 18221 | Bulk Product f29e4196 | Toys & Games | $723.37 | 99 | ★ 0.1 | 41 | BULK-24c53103 |
| 18222 | Bulk Product 5eaa8b98 | Toys & Games | $979.59 | 284 | ★ 3.6 | 1 | BULK-ef30df0c |
| 18223 | Bulk Product 823dd7e8 | Electronics | $354.36 | 273 | ★ 0.3 | 32 | BULK-1e4e2121 |
| 18224 | Bulk Product fd3d05bf | Clothing | $757.67 | 85 | ★ 2.4 | 9 | BULK-e858e8ee |
| 18225 | Bulk Product 64607b60 | Clothing | $72.81 | 36 | ★ 3.7 | 97 | BULK-ecfe8b7f |
| 18226 | Bulk Product 392b6609 | Toys & Games | $678.10 | 190 | ★ 1.3 | 56 | BULK-a10cbbf6 |
| 18227 | Bulk Product 4b164d0d | Books | $831.72 | 168 | ★ 2.3 | 50 | BULK-40b95bc5 |
| 18228 | Bulk Product 5aa0550d | Sports & Outdoors | $982.51 | 79 | ★ 2.6 | 87 | BULK-cf6a17b3 |
| 18229 | Bulk Product d1b0eeb7 | Sports & Outdoors | $514.07 | 161 | ★ 4.5 | 54 | BULK-2dadaa1d |
| 18230 | Bulk Product bff35ba1 | Clothing | $145.27 | 485 | ★ 1.2 | 25 | BULK-88031fd2 |
| 18231 | Bulk Product 69c1b51b | Electronics | $939.33 | 306 | ★ 2.0 | 89 | BULK-cba3d529 |
| 18232 | Bulk Product e40472ee | Clothing | $936.16 | 118 | ★ 4.6 | 38 | BULK-8d63b82a |
| 18233 | Bulk Product ac39cc39 | Toys & Games | $772.28 | 26 | ★ 1.7 | 7 | BULK-b4480e8d |
| 18234 | Bulk Product d8bc62c3 | Electronics | $475.42 | 45 | ★ 2.5 | 4 | BULK-1bef6aa7 |
| 18235 | Bulk Product d7e43b07 | Electronics | $300.32 | 377 | ★ 2.1 | 50 | BULK-4383167e |
| 18236 | Bulk Product 79fbe385 | Clothing | $29.25 | 194 | ★ 2.2 | 61 | BULK-f57bb937 |
| 18237 | Bulk Product 7ff11fc2 | Electronics | $735.05 | 149 | ★ 4.2 | 31 | BULK-a80ae9fe |
| 18238 | Bulk Product a12cb7fe | Home & Garden | $495.17 | 40 | ★ 4.4 | 94 | BULK-0f358910 |
| 18239 | Bulk Product f92473f9 | Books | $348.10 | 98 | ★ 3.1 | 46 | BULK-c75ac04c |
| 18240 | Bulk Product f75e6eee | Clothing | $185.67 | 0 | ★ 0.9 | 98 | BULK-41e99de1 |
| 18241 | Bulk Product 11df5dae | Toys & Games | $777.13 | 121 | ★ 2.6 | 1 | BULK-e82904a0 |
| 18242 | Bulk Product d7742d2e | Electronics | $441.85 | 464 | ★ 0.8 | 69 | BULK-7af28e0d |
| 18243 | Bulk Product 66a9b5db | Home & Garden | $530.10 | 187 | ★ 0.3 | 81 | BULK-a76c0939 |
| 18244 | Bulk Product 09fc2cee | Toys & Games | $727.64 | 494 | ★ 3.0 | 71 | BULK-6de926b4 |
| 18245 | Bulk Product d51f5338 | Sports & Outdoors | $503.68 | 468 | ★ 2.2 | 43 | BULK-deebc626 |
| 18246 | Bulk Product 76605b7c | Clothing | $356.54 | 378 | ★ 2.8 | 60 | BULK-41222359 |
| 18247 | Bulk Product 49825187 | Books | $901.35 | 22 | ★ 3.7 | 83 | BULK-72e124f5 |
| 18248 | Bulk Product 6e238eb1 | Sports & Outdoors | $950.36 | 228 | ★ 1.6 | 98 | BULK-a8ea32e5 |
| 18249 | Bulk Product b910ab6a | Home & Garden | $209.11 | 280 | ★ 4.3 | 56 | BULK-b30cb2b6 |
| 18250 | Bulk Product 9264ab12 | Home & Garden | $973.01 | 302 | ★ 0.0 | 98 | BULK-78ee904d |
| 18251 | Bulk Product fea98cfd | Sports & Outdoors | $965.66 | 8 | ★ 1.2 | 14 | BULK-9a18ce2e |
| 18252 | Bulk Product cc2e290c | Home & Garden | $618.68 | 494 | ★ 2.9 | 6 | BULK-4fce42b7 |
| 18253 | Bulk Product b6be60d9 | Books | $593.05 | 192 | ★ 1.1 | 89 | BULK-1fe10002 |
| 18254 | Bulk Product 0fe69fe4 | Home & Garden | $481.17 | 299 | ★ 4.5 | 84 | BULK-95272888 |
| 18255 | Bulk Product 4cb49586 | Clothing | $119.66 | 5 | ★ 3.0 | 27 | BULK-7576c6cd |
| 18256 | Bulk Product 78d3665c | Electronics | $608.48 | 474 | ★ 0.6 | 1 | BULK-6632b33c |
| 18257 | Bulk Product 6505d62c | Toys & Games | $503.59 | 245 | ★ 4.1 | 92 | BULK-541d087e |
| 18258 | Bulk Product 8598cdc0 | Sports & Outdoors | $235.15 | 103 | ★ 3.8 | 26 | BULK-d31769bc |
| 18259 | Bulk Product 6062621e | Books | $334.87 | 185 | ★ 3.3 | 11 | BULK-6bab9dbc |
// 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
};
}