Efficient pagination using OFFSET-FETCH on SQL Server.
| ID | Name | Category | Price | Stock | Rating | Reviews | SKU |
|---|---|---|---|---|---|---|---|
| 19860 | Bulk Product 555dde41 | Home & Garden | $250.23 | 72 | ★ 1.1 | 97 | BULK-f6f7a755 |
| 19861 | Bulk Product 97ed1e3a | Sports & Outdoors | $766.81 | 437 | ★ 1.0 | 44 | BULK-6f66deca |
| 19862 | Bulk Product 839466af | Books | $272.09 | 294 | ★ 2.2 | 57 | BULK-980ec95f |
| 19863 | Bulk Product 08d2976c | Electronics | $137.79 | 143 | ★ 0.8 | 2 | BULK-378c46d4 |
| 19864 | Bulk Product affbd540 | Home & Garden | $281.95 | 216 | ★ 3.8 | 47 | BULK-6b6ecaa5 |
| 19865 | Bulk Product 32bdc2b3 | Home & Garden | $449.11 | 465 | ★ 1.3 | 95 | BULK-fdee6d7c |
| 19866 | Bulk Product ae3733a2 | Toys & Games | $572.25 | 383 | ★ 0.3 | 78 | BULK-badf3cf4 |
| 19867 | Bulk Product b6422d53 | Clothing | $290.14 | 75 | ★ 4.4 | 55 | BULK-e5796cc1 |
| 19868 | Bulk Product 810df8c7 | Books | $279.32 | 316 | ★ 1.2 | 43 | BULK-4e91177d |
| 19869 | Bulk Product 4b5fe02e | Home & Garden | $594.92 | 298 | ★ 0.5 | 19 | BULK-b6670bf4 |
| 19870 | Bulk Product b5da8d89 | Home & Garden | $453.27 | 122 | ★ 1.5 | 94 | BULK-1e614e19 |
| 19871 | Bulk Product 30a4eb03 | Sports & Outdoors | $866.02 | 252 | ★ 1.2 | 59 | BULK-a191084d |
| 19872 | Bulk Product 28763b49 | Home & Garden | $659.22 | 403 | ★ 2.9 | 59 | BULK-502c2420 |
| 19873 | Bulk Product 671b285e | Clothing | $935.12 | 460 | ★ 4.2 | 31 | BULK-cd7a109e |
| 19874 | Bulk Product 5e91a10d | Books | $492.51 | 493 | ★ 4.7 | 48 | BULK-4ee3bf0a |
| 19875 | Bulk Product 53c8e014 | Electronics | $189.45 | 11 | ★ 1.4 | 94 | BULK-5ed18321 |
| 19876 | Bulk Product eb5dd840 | Electronics | $279.19 | 490 | ★ 3.3 | 35 | BULK-d853fe08 |
| 19877 | Bulk Product a8e4c1e1 | Home & Garden | $995.98 | 203 | ★ 1.8 | 99 | BULK-d013af19 |
| 19878 | Bulk Product acf3fe29 | Sports & Outdoors | $65.19 | 231 | ★ 1.0 | 15 | BULK-99eaa2ee |
| 19879 | Bulk Product 87352fe0 | Home & Garden | $500.50 | 291 | ★ 0.9 | 26 | BULK-4fa690b0 |
| 19880 | Bulk Product 2adac319 | Clothing | $598.11 | 292 | ★ 4.0 | 38 | BULK-cd55f484 |
| 19881 | Bulk Product d1f28d91 | Toys & Games | $617.38 | 415 | ★ 4.6 | 81 | BULK-6f799c06 |
| 19882 | Bulk Product 5c1885e4 | Toys & Games | $35.43 | 219 | ★ 0.6 | 13 | BULK-a6d28806 |
| 19883 | Bulk Product ce2633bc | Electronics | $222.55 | 270 | ★ 4.0 | 21 | BULK-a96ed0a4 |
| 19884 | Bulk Product d28d2561 | Books | $296.33 | 412 | ★ 2.8 | 32 | BULK-a176f138 |
| 19885 | Bulk Product c1844824 | Toys & Games | $24.49 | 63 | ★ 2.4 | 80 | BULK-9da79ba6 |
| 19886 | Bulk Product 7f1f4756 | Sports & Outdoors | $551.71 | 313 | ★ 2.6 | 35 | BULK-5dbfcd72 |
| 19887 | Bulk Product 2e46e00f | Books | $218.22 | 498 | ★ 4.4 | 72 | BULK-ee8d1358 |
| 19888 | Bulk Product a7624b6a | Toys & Games | $843.16 | 382 | ★ 0.2 | 50 | BULK-28052bdb |
| 19889 | Bulk Product 91170f55 | Clothing | $747.80 | 339 | ★ 2.6 | 90 | BULK-42a74970 |
| 19890 | Bulk Product 6be5a774 | Electronics | $622.52 | 456 | ★ 0.5 | 54 | BULK-7c5eccb2 |
| 19891 | Bulk Product 21d103e7 | Books | $922.51 | 320 | ★ 0.5 | 50 | BULK-6872ed74 |
| 19892 | Bulk Product cb7067f9 | Home & Garden | $882.12 | 244 | ★ 0.0 | 34 | BULK-43e911a0 |
| 19893 | Bulk Product 8ba79e99 | Electronics | $32.72 | 233 | ★ 2.0 | 17 | BULK-371c9562 |
| 19894 | Bulk Product c8069233 | Clothing | $971.33 | 442 | ★ 1.7 | 23 | BULK-260c9827 |
| 19895 | Bulk Product 8e36d2cd | Sports & Outdoors | $765.26 | 379 | ★ 4.1 | 38 | BULK-8834a1d4 |
| 19896 | Bulk Product 320400a3 | Home & Garden | $593.26 | 66 | ★ 2.8 | 42 | BULK-02b78e26 |
| 19897 | Bulk Product b70dd52b | Books | $237.90 | 173 | ★ 3.6 | 55 | BULK-b936aed4 |
| 19898 | Bulk Product 30cdbf8a | Home & Garden | $706.29 | 108 | ★ 4.7 | 30 | BULK-9f6c7290 |
| 19899 | Bulk Product 22c7e54b | Home & Garden | $898.72 | 309 | ★ 4.8 | 45 | BULK-3f99d222 |
| 19900 | Bulk Product 1e5fc0c8 | Books | $969.19 | 488 | ★ 3.9 | 8 | BULK-7d6ab177 |
| 19901 | Bulk Product 418e50a8 | Home & Garden | $652.67 | 113 | ★ 2.8 | 4 | BULK-75b938f2 |
| 19902 | Bulk Product 78aa2458 | Clothing | $511.26 | 171 | ★ 0.2 | 27 | BULK-57d4deb8 |
| 19903 | Bulk Product f80fcf46 | Home & Garden | $18.72 | 363 | ★ 1.5 | 79 | BULK-02c3e357 |
| 19904 | Bulk Product a10a44b8 | Electronics | $292.61 | 217 | ★ 2.8 | 53 | BULK-8d83ff93 |
| 19905 | Bulk Product 972e6f86 | Toys & Games | $746.95 | 453 | ★ 0.8 | 1 | BULK-5e56ebf2 |
| 19906 | Bulk Product 441ccec5 | Sports & Outdoors | $717.37 | 177 | ★ 0.8 | 95 | BULK-5446821a |
| 19907 | Bulk Product a144dd40 | Home & Garden | $547.34 | 359 | ★ 3.9 | 76 | BULK-dc43856a |
| 19908 | Bulk Product 1578cbad | Clothing | $560.15 | 397 | ★ 0.4 | 22 | BULK-b5c991fe |
| 19909 | Bulk Product 0cd4f446 | Home & Garden | $595.36 | 68 | ★ 0.6 | 90 | BULK-5bc19392 |
// 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
};
}