Efficient pagination using OFFSET-FETCH on SQL Server.
| ID | Name | Category | Price | Stock | Rating | Reviews | SKU |
|---|---|---|---|---|---|---|---|
| 16210 | Bulk Product a2487b72 | Home & Garden | $285.40 | 339 | ★ 1.7 | 21 | BULK-e5437aec |
| 16211 | Bulk Product 0cba40fc | Clothing | $433.51 | 309 | ★ 3.1 | 95 | BULK-a9601d78 |
| 16212 | Bulk Product aa60f7b2 | Home & Garden | $800.27 | 278 | ★ 2.4 | 30 | BULK-cfafcbc3 |
| 16213 | Bulk Product 6e16b71b | Electronics | $564.59 | 388 | ★ 5.0 | 94 | BULK-8e5f06c5 |
| 16214 | Bulk Product 6985f7fe | Books | $199.48 | 289 | ★ 1.4 | 22 | BULK-56adad1c |
| 16215 | Bulk Product c8eee4de | Toys & Games | $381.24 | 321 | ★ 3.8 | 75 | BULK-abf53ecc |
| 16216 | Bulk Product 069d478a | Home & Garden | $209.90 | 107 | ★ 1.5 | 52 | BULK-4ddb78a2 |
| 16217 | Bulk Product 5cdd1d16 | Electronics | $467.23 | 66 | ★ 2.5 | 83 | BULK-90ca8566 |
| 16218 | Bulk Product c41e64d0 | Home & Garden | $525.43 | 184 | ★ 4.1 | 58 | BULK-e0a5cdc4 |
| 16219 | Bulk Product 862be6b4 | Books | $59.59 | 360 | ★ 3.5 | 64 | BULK-ee4614f4 |
| 16220 | Bulk Product 4686fde6 | Sports & Outdoors | $943.46 | 40 | ★ 4.4 | 41 | BULK-4f97ad1f |
| 16221 | Bulk Product 2849efe3 | Electronics | $517.33 | 110 | ★ 1.8 | 94 | BULK-e9042468 |
| 16222 | Bulk Product 140d8475 | Home & Garden | $46.09 | 257 | ★ 4.6 | 55 | BULK-8247363c |
| 16223 | Bulk Product 3b72d261 | Home & Garden | $558.27 | 408 | ★ 4.5 | 29 | BULK-c279b178 |
| 16224 | Bulk Product 506cffb8 | Sports & Outdoors | $988.68 | 258 | ★ 0.3 | 27 | BULK-1b1bccef |
| 16225 | Bulk Product 46e61b3d | Sports & Outdoors | $25.62 | 112 | ★ 3.5 | 10 | BULK-36e8714e |
| 16226 | Bulk Product f1a1985f | Toys & Games | $860.37 | 94 | ★ 3.1 | 43 | BULK-de8f3c47 |
| 16227 | Bulk Product 91f50981 | Toys & Games | $617.50 | 453 | ★ 0.8 | 25 | BULK-8bb670f8 |
| 16228 | Bulk Product 2c5cdf72 | Electronics | $475.03 | 163 | ★ 4.4 | 13 | BULK-3df31bf4 |
| 16229 | Bulk Product 1a9ebe0f | Toys & Games | $246.72 | 290 | ★ 2.7 | 10 | BULK-a73e7775 |
| 16230 | Bulk Product f6d7d7ef | Sports & Outdoors | $976.15 | 280 | ★ 3.0 | 21 | BULK-73b84a40 |
| 16231 | Bulk Product 705975d2 | Toys & Games | $250.70 | 339 | ★ 1.0 | 76 | BULK-3ec463b1 |
| 16232 | Bulk Product d6399414 | Sports & Outdoors | $635.32 | 70 | ★ 2.1 | 94 | BULK-348f5cdf |
| 16233 | Bulk Product 75470f72 | Clothing | $108.93 | 435 | ★ 0.9 | 64 | BULK-fa0e503c |
| 16234 | Bulk Product fe6a9d94 | Sports & Outdoors | $105.94 | 60 | ★ 4.1 | 0 | BULK-9ad3538b |
| 16235 | Bulk Product 4458c885 | Home & Garden | $129.37 | 213 | ★ 4.7 | 24 | BULK-848b4397 |
| 16236 | Bulk Product da615c70 | Clothing | $239.64 | 135 | ★ 2.2 | 54 | BULK-58c93240 |
| 16237 | Bulk Product f4f02e6d | Toys & Games | $257.25 | 247 | ★ 0.8 | 43 | BULK-8304da68 |
| 16238 | Bulk Product b35f3b9a | Books | $121.22 | 330 | ★ 4.9 | 89 | BULK-50f3e11d |
| 16239 | Bulk Product 4fa88079 | Books | $565.81 | 279 | ★ 4.5 | 85 | BULK-e99d4bfe |
| 16240 | Bulk Product f4128d54 | Home & Garden | $938.74 | 65 | ★ 1.2 | 8 | BULK-044089fd |
| 16241 | Bulk Product 6a661ec7 | Home & Garden | $915.72 | 124 | ★ 2.5 | 32 | BULK-435e3dda |
| 16242 | Bulk Product f5f188ca | Books | $250.52 | 231 | ★ 1.3 | 49 | BULK-bee17d2d |
| 16243 | Bulk Product bc16236b | Books | $878.22 | 138 | ★ 1.5 | 3 | BULK-6befc08a |
| 16244 | Bulk Product 151dcf60 | Books | $915.00 | 80 | ★ 4.1 | 84 | BULK-cfb57496 |
| 16245 | Bulk Product 53897560 | Toys & Games | $448.04 | 492 | ★ 4.0 | 34 | BULK-a26f8cb2 |
| 16246 | Bulk Product e8ebb383 | Toys & Games | $857.63 | 155 | ★ 1.3 | 99 | BULK-7be0a766 |
| 16247 | Bulk Product 4c931327 | Electronics | $572.31 | 205 | ★ 0.5 | 27 | BULK-c037dd85 |
| 16248 | Bulk Product cf358c7f | Toys & Games | $335.00 | 30 | ★ 0.2 | 99 | BULK-2fbefe51 |
| 16249 | Bulk Product 81533f61 | Clothing | $38.80 | 215 | ★ 4.8 | 87 | BULK-cd059f5a |
| 16250 | Bulk Product b0461440 | Toys & Games | $689.95 | 52 | ★ 3.1 | 54 | BULK-73412965 |
| 16251 | Bulk Product c46a66b6 | Home & Garden | $264.71 | 194 | ★ 0.8 | 11 | BULK-14e8bee3 |
| 16252 | Bulk Product 1ab18e0f | Home & Garden | $1,008.21 | 202 | ★ 1.0 | 15 | BULK-d1ca20f6 |
| 16253 | Bulk Product 81c75bec | Clothing | $100.47 | 198 | ★ 3.4 | 27 | BULK-2e0f32a3 |
| 16254 | Bulk Product b16c896d | Clothing | $84.44 | 290 | ★ 2.5 | 76 | BULK-251b9329 |
| 16255 | Bulk Product 48e68c76 | Books | $210.89 | 453 | ★ 0.9 | 22 | BULK-20e57f74 |
| 16256 | Bulk Product 021f3adf | Books | $711.23 | 99 | ★ 2.6 | 36 | BULK-e6bac9d6 |
| 16257 | Bulk Product d6f6c26c | Sports & Outdoors | $640.86 | 257 | ★ 0.8 | 57 | BULK-4202e6c4 |
| 16258 | Bulk Product a5da0763 | Books | $170.88 | 137 | ★ 2.8 | 87 | BULK-74301915 |
| 16259 | Bulk Product ed6d4370 | Electronics | $992.71 | 204 | ★ 3.7 | 58 | BULK-8fa41a33 |
// 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
};
}