Efficient pagination using OFFSET-FETCH on SQL Server.
| ID | Name | Category | Price | Stock | Rating | Reviews | SKU |
|---|---|---|---|---|---|---|---|
| 21960 | Bulk Product 8fd91477 | Sports & Outdoors | $882.17 | 238 | ★ 0.6 | 60 | BULK-8dede372 |
| 21961 | Bulk Product 5b91acf6 | Home & Garden | $854.46 | 318 | ★ 4.6 | 21 | BULK-d59eedbd |
| 21962 | Bulk Product 4ebd6460 | Books | $436.10 | 403 | ★ 2.0 | 65 | BULK-888ee995 |
| 21963 | Bulk Product 75c9f099 | Sports & Outdoors | $117.46 | 253 | ★ 0.0 | 65 | BULK-7161a337 |
| 21964 | Bulk Product 1268963c | Toys & Games | $708.60 | 145 | ★ 2.3 | 5 | BULK-c326939e |
| 21965 | Bulk Product 76845f42 | Toys & Games | $768.78 | 82 | ★ 4.6 | 97 | BULK-a68aab06 |
| 21966 | Bulk Product 1fbb32d2 | Home & Garden | $176.57 | 388 | ★ 1.7 | 11 | BULK-11f2ce35 |
| 21967 | Bulk Product 2839dbd5 | Sports & Outdoors | $221.34 | 262 | ★ 0.2 | 77 | BULK-ac7a7537 |
| 21968 | Bulk Product 6eded686 | Home & Garden | $789.04 | 137 | ★ 4.2 | 48 | BULK-12efcac6 |
| 21969 | Bulk Product e651d577 | Toys & Games | $121.59 | 0 | ★ 2.1 | 41 | BULK-19bc1ab1 |
| 21970 | Bulk Product b4ee0992 | Clothing | $149.65 | 364 | ★ 1.8 | 26 | BULK-d59c65b7 |
| 21971 | Bulk Product 73c8ab12 | Sports & Outdoors | $676.09 | 444 | ★ 0.4 | 20 | BULK-81efcae3 |
| 21972 | Bulk Product c60d7e3b | Toys & Games | $423.99 | 117 | ★ 2.0 | 8 | BULK-4cb7ed08 |
| 21973 | Bulk Product 51af23ab | Clothing | $1,006.53 | 318 | ★ 1.2 | 96 | BULK-9f39ff09 |
| 21974 | Bulk Product e7c8e6a3 | Toys & Games | $487.07 | 466 | ★ 3.6 | 23 | BULK-be2a25a1 |
| 21975 | Bulk Product a5638b7d | Electronics | $43.69 | 325 | ★ 3.9 | 88 | BULK-13f9dff3 |
| 21976 | Bulk Product 943d985e | Home & Garden | $241.79 | 120 | ★ 2.2 | 17 | BULK-39b192a6 |
| 21977 | Bulk Product ccac318b | Books | $240.01 | 483 | ★ 4.1 | 31 | BULK-49463970 |
| 21978 | Bulk Product 969368cf | Toys & Games | $149.27 | 484 | ★ 2.0 | 55 | BULK-95472062 |
| 21979 | Bulk Product f0b99d9a | Toys & Games | $355.50 | 163 | ★ 0.2 | 21 | BULK-99232f2b |
| 21980 | Bulk Product 34413962 | Sports & Outdoors | $794.47 | 216 | ★ 0.6 | 5 | BULK-a57af6b9 |
| 21981 | Bulk Product 1f53b27d | Electronics | $593.65 | 112 | ★ 1.5 | 17 | BULK-ee5eee91 |
| 21982 | Bulk Product 07a4ee89 | Toys & Games | $719.63 | 321 | ★ 4.2 | 10 | BULK-44126580 |
| 21983 | Bulk Product 74edbe22 | Home & Garden | $796.35 | 212 | ★ 3.2 | 57 | BULK-cfaea4b6 |
| 21984 | Bulk Product 427beb30 | Electronics | $29.01 | 80 | ★ 4.6 | 67 | BULK-827f12e6 |
| 21985 | Bulk Product 0eb5906d | Books | $144.22 | 454 | ★ 0.6 | 95 | BULK-964d4374 |
| 21986 | Bulk Product f1b91703 | Books | $673.26 | 217 | ★ 3.1 | 53 | BULK-a7dcc395 |
| 21987 | Bulk Product 117ecfee | Home & Garden | $669.17 | 34 | ★ 5.0 | 86 | BULK-5be0e4c0 |
| 21988 | Bulk Product b069bf45 | Clothing | $803.47 | 49 | ★ 3.5 | 18 | BULK-56049953 |
| 21989 | Bulk Product a4cea786 | Electronics | $925.38 | 419 | ★ 3.2 | 42 | BULK-aece211f |
| 21990 | Bulk Product dd441186 | Books | $130.33 | 438 | ★ 1.1 | 79 | BULK-988d1e04 |
| 21991 | Bulk Product 753c9771 | Toys & Games | $174.11 | 96 | ★ 2.5 | 46 | BULK-3aa48e89 |
| 21992 | Bulk Product 5e922a0c | Sports & Outdoors | $526.20 | 111 | ★ 4.5 | 15 | BULK-7ca0a6e1 |
| 21993 | Bulk Product 197c3a58 | Electronics | $975.32 | 298 | ★ 3.1 | 45 | BULK-e612f18e |
| 21994 | Bulk Product 9e9929ae | Books | $108.93 | 90 | ★ 1.9 | 49 | BULK-b1ec7bae |
| 21995 | Bulk Product df15dd51 | Electronics | $217.05 | 64 | ★ 3.7 | 9 | BULK-5a7735e7 |
| 21996 | Bulk Product 07371ff9 | Books | $418.19 | 409 | ★ 1.2 | 17 | BULK-9f263bd7 |
| 21997 | Bulk Product dba00843 | Toys & Games | $406.56 | 147 | ★ 1.7 | 72 | BULK-214241b3 |
| 21998 | Bulk Product cf88d48e | Books | $936.73 | 268 | ★ 3.1 | 19 | BULK-d4e1212c |
| 21999 | Bulk Product 8354678c | Home & Garden | $656.56 | 197 | ★ 3.8 | 93 | BULK-ac403370 |
| 22000 | Bulk Product 3fc92935 | Electronics | $214.74 | 18 | ★ 3.7 | 50 | BULK-d89bf37b |
| 22001 | Bulk Product cba09824 | Sports & Outdoors | $668.92 | 41 | ★ 3.2 | 74 | BULK-c4c4b734 |
| 22002 | Bulk Product aaf0e8af | Home & Garden | $219.97 | 363 | ★ 0.1 | 53 | BULK-b53c2d1a |
| 22003 | Bulk Product 1421ad09 | Toys & Games | $569.24 | 286 | ★ 3.1 | 82 | BULK-47996dd1 |
| 22004 | Bulk Product 50a19c4e | Sports & Outdoors | $444.57 | 105 | ★ 2.7 | 35 | BULK-a01af17b |
| 22005 | Bulk Product 6b66c432 | Sports & Outdoors | $188.57 | 494 | ★ 1.2 | 50 | BULK-514ce2dd |
| 22006 | Bulk Product ea14c711 | Clothing | $280.61 | 378 | ★ 1.1 | 13 | BULK-ec03c086 |
| 22007 | Bulk Product 5fa880e9 | Sports & Outdoors | $921.27 | 129 | ★ 0.8 | 12 | BULK-b0d5cae2 |
| 22008 | Bulk Product 81083392 | Sports & Outdoors | $830.68 | 471 | ★ 2.7 | 42 | BULK-bade4dc3 |
| 22009 | Bulk Product db3f7741 | Clothing | $742.83 | 390 | ★ 0.2 | 18 | BULK-76c748bc |
// 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
};
}