Efficient pagination using OFFSET-FETCH on SQL Server.
| ID | Name | Category | Price | Stock | Rating | Reviews | SKU |
|---|---|---|---|---|---|---|---|
| 11910 | Bulk Product c66d63db | Home & Garden | $733.95 | 363 | ★ 1.4 | 21 | BULK-7681ad48 |
| 11911 | Bulk Product 90a8e8b4 | Home & Garden | $818.98 | 210 | ★ 2.8 | 96 | BULK-5ada9560 |
| 11912 | Bulk Product cd256741 | Clothing | $690.47 | 120 | ★ 4.4 | 4 | BULK-37451666 |
| 11913 | Bulk Product a7d72602 | Electronics | $286.60 | 197 | ★ 4.8 | 15 | BULK-a3acadd4 |
| 11914 | Bulk Product 4c6edec9 | Electronics | $535.49 | 143 | ★ 3.3 | 9 | BULK-8ae2bda3 |
| 11915 | Bulk Product 72853634 | Sports & Outdoors | $60.51 | 225 | ★ 3.7 | 14 | BULK-d62c81cc |
| 11916 | Bulk Product dad0a912 | Sports & Outdoors | $918.39 | 40 | ★ 0.1 | 57 | BULK-211053b7 |
| 11917 | Bulk Product f3ba8c2e | Electronics | $571.82 | 89 | ★ 3.1 | 58 | BULK-8029f744 |
| 11918 | Bulk Product 816ee9fa | Home & Garden | $563.72 | 303 | ★ 4.8 | 45 | BULK-8114d487 |
| 11919 | Bulk Product 1e40341e | Home & Garden | $850.64 | 104 | ★ 3.7 | 85 | BULK-c13bb2ea |
| 11920 | Bulk Product cc78b167 | Electronics | $864.10 | 394 | ★ 1.7 | 10 | BULK-a380f0d4 |
| 11921 | Bulk Product 6e85f5e6 | Sports & Outdoors | $402.41 | 320 | ★ 1.4 | 64 | BULK-fb4a41ff |
| 11922 | Bulk Product d32cc209 | Sports & Outdoors | $415.80 | 232 | ★ 4.7 | 45 | BULK-8e469c04 |
| 11923 | Bulk Product d65ccba7 | Clothing | $10.79 | 178 | ★ 3.5 | 30 | BULK-7c50153f |
| 11924 | Bulk Product fffa19d2 | Sports & Outdoors | $993.02 | 39 | ★ 2.6 | 31 | BULK-a4290257 |
| 11925 | Bulk Product 9623758f | Books | $339.83 | 32 | ★ 4.3 | 91 | BULK-395250be |
| 11926 | Bulk Product 8eaab14f | Books | $955.78 | 155 | ★ 0.5 | 15 | BULK-0e68ca23 |
| 11927 | Bulk Product e3fd8b09 | Electronics | $358.64 | 356 | ★ 4.5 | 71 | BULK-812b9b00 |
| 11928 | Bulk Product 663dbe96 | Toys & Games | $848.52 | 215 | ★ 3.6 | 20 | BULK-b64dc456 |
| 11929 | Bulk Product 0ea1f7cc | Books | $800.88 | 212 | ★ 2.7 | 15 | BULK-ef83127d |
| 11930 | Bulk Product c40bb711 | Home & Garden | $290.14 | 217 | ★ 3.4 | 35 | BULK-0dd4f0f0 |
| 11931 | Bulk Product 9265571e | Clothing | $292.46 | 48 | ★ 4.0 | 60 | BULK-78eefab1 |
| 11932 | Bulk Product a291bb67 | Home & Garden | $487.20 | 482 | ★ 3.8 | 11 | BULK-a9abf34c |
| 11933 | Bulk Product eaa679f3 | Toys & Games | $109.08 | 426 | ★ 4.7 | 66 | BULK-4fd045bd |
| 11934 | Bulk Product b2fbb5a1 | Toys & Games | $710.12 | 50 | ★ 2.4 | 26 | BULK-5a83bd75 |
| 11935 | Bulk Product d369a692 | Clothing | $197.24 | 394 | ★ 0.9 | 8 | BULK-ecdf1e51 |
| 11936 | Bulk Product 743fadc3 | Books | $635.44 | 454 | ★ 4.4 | 56 | BULK-659327c4 |
| 11937 | Bulk Product 80c3da14 | Electronics | $710.81 | 284 | ★ 4.2 | 77 | BULK-fbd2525a |
| 11938 | Bulk Product d1a26551 | Electronics | $568.98 | 377 | ★ 1.8 | 94 | BULK-12476b0d |
| 11939 | Bulk Product c41ff9f7 | Clothing | $198.70 | 74 | ★ 4.8 | 20 | BULK-d82b3a8f |
| 11940 | Bulk Product b7961f33 | Toys & Games | $278.22 | 268 | ★ 0.6 | 15 | BULK-f743fd80 |
| 11941 | Bulk Product f34c753f | Clothing | $391.41 | 133 | ★ 2.3 | 38 | BULK-bd3f803c |
| 11942 | Bulk Product 2cfe0b61 | Home & Garden | $430.23 | 233 | ★ 4.3 | 38 | BULK-f81d532e |
| 11943 | Bulk Product 93f7c466 | Toys & Games | $578.61 | 430 | ★ 3.2 | 95 | BULK-43c8c2e1 |
| 11944 | Bulk Product 0bb162ab | Toys & Games | $130.43 | 21 | ★ 2.3 | 9 | BULK-c957f113 |
| 11945 | Bulk Product bce8ec25 | Sports & Outdoors | $72.65 | 382 | ★ 4.3 | 8 | BULK-d23ec2d3 |
| 11946 | Bulk Product 3dfecbe9 | Toys & Games | $452.86 | 180 | ★ 0.3 | 10 | BULK-6dd0f940 |
| 11947 | Bulk Product 31adf0f2 | Electronics | $666.60 | 146 | ★ 2.7 | 58 | BULK-89208ed5 |
| 11948 | Bulk Product ae610a3b | Clothing | $1,000.06 | 149 | ★ 3.8 | 9 | BULK-16e3dee3 |
| 11949 | Bulk Product abe5c2b2 | Home & Garden | $694.05 | 67 | ★ 2.4 | 62 | BULK-d5f7b0c4 |
| 11950 | Bulk Product fa31beec | Toys & Games | $394.05 | 108 | ★ 3.4 | 74 | BULK-c0f68c3a |
| 11951 | Bulk Product fea13e66 | Books | $152.57 | 186 | ★ 2.5 | 23 | BULK-ff2e3a68 |
| 11952 | Bulk Product aa5b7d74 | Toys & Games | $990.33 | 342 | ★ 4.1 | 95 | BULK-29a866fa |
| 11953 | Bulk Product 53fe9c94 | Sports & Outdoors | $361.56 | 476 | ★ 1.3 | 74 | BULK-76250b0e |
| 11954 | Bulk Product 977a5264 | Home & Garden | $458.81 | 176 | ★ 2.3 | 93 | BULK-0eff5a67 |
| 11955 | Bulk Product e2e7ee19 | Books | $66.52 | 306 | ★ 3.8 | 54 | BULK-2b112178 |
| 11956 | Bulk Product c45e6b37 | Books | $69.76 | 335 | ★ 4.4 | 88 | BULK-af0c05a5 |
| 11957 | Bulk Product afc4ce2e | Electronics | $874.54 | 308 | ★ 0.7 | 43 | BULK-69c66f0f |
| 11958 | Bulk Product ed616ad0 | Electronics | $256.99 | 271 | ★ 0.1 | 18 | BULK-89a771f4 |
| 11959 | Bulk Product 7a267c91 | Toys & Games | $516.12 | 355 | ★ 1.2 | 27 | BULK-997922fe |
// 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
};
}