Efficient pagination using OFFSET-FETCH on SQL Server.
| ID | Name | Category | Price | Stock | Rating | Reviews | SKU |
|---|---|---|---|---|---|---|---|
| 22910 | Bulk Product c4bbee81 | Clothing | $505.40 | 423 | ★ 3.7 | 38 | BULK-5e83fb1f |
| 22911 | Bulk Product fc5f62ec | Home & Garden | $593.56 | 408 | ★ 2.0 | 64 | BULK-f100afd8 |
| 22912 | Bulk Product b8dbb596 | Home & Garden | $575.00 | 240 | ★ 1.3 | 18 | BULK-9ba0064d |
| 22913 | Bulk Product 5d537553 | Toys & Games | $269.37 | 470 | ★ 0.2 | 35 | BULK-a2d28379 |
| 22914 | Bulk Product d8025f2f | Sports & Outdoors | $974.21 | 220 | ★ 0.3 | 57 | BULK-0c41d7af |
| 22915 | Bulk Product b5b38a4e | Electronics | $528.84 | 186 | ★ 0.7 | 3 | BULK-a4cd3849 |
| 22916 | Bulk Product cfc8c62e | Electronics | $1,006.46 | 395 | ★ 4.4 | 51 | BULK-7e5abff9 |
| 22917 | Bulk Product e8ad70e0 | Sports & Outdoors | $465.06 | 251 | ★ 3.7 | 49 | BULK-87353733 |
| 22918 | Bulk Product 7c7079f0 | Home & Garden | $834.91 | 422 | ★ 3.4 | 73 | BULK-75633678 |
| 22919 | Bulk Product b14256a5 | Electronics | $481.86 | 225 | ★ 4.4 | 24 | BULK-c5ef576f |
| 22920 | Bulk Product 79c23208 | Clothing | $127.46 | 339 | ★ 0.6 | 91 | BULK-0235b8c2 |
| 22921 | Bulk Product 1da08d50 | Books | $703.30 | 25 | ★ 2.8 | 26 | BULK-7754d0c2 |
| 22922 | Bulk Product 0336662e | Home & Garden | $189.07 | 64 | ★ 0.7 | 0 | BULK-689f90b4 |
| 22923 | Bulk Product 68cbd3d6 | Toys & Games | $10.76 | 33 | ★ 2.4 | 44 | BULK-386e2e4b |
| 22924 | Bulk Product 235717d3 | Home & Garden | $255.44 | 226 | ★ 3.1 | 8 | BULK-f130db6a |
| 22925 | Bulk Product d47f93bb | Electronics | $414.69 | 227 | ★ 3.7 | 56 | BULK-cf959298 |
| 22926 | Bulk Product 0b6d7c35 | Books | $933.70 | 36 | ★ 0.2 | 56 | BULK-c23ad07d |
| 22927 | Bulk Product 8be111aa | Toys & Games | $726.68 | 285 | ★ 2.6 | 99 | BULK-70f1b4a5 |
| 22928 | Bulk Product 20bf5ee5 | Home & Garden | $830.43 | 229 | ★ 1.3 | 9 | BULK-06a50480 |
| 22929 | Bulk Product 5feb5213 | Toys & Games | $453.90 | 72 | ★ 3.2 | 90 | BULK-275aeb2f |
| 22930 | Bulk Product a52a17f3 | Sports & Outdoors | $524.34 | 271 | ★ 2.3 | 36 | BULK-08fe2f16 |
| 22931 | Bulk Product bc1c8620 | Home & Garden | $535.19 | 33 | ★ 3.0 | 2 | BULK-09fba6ce |
| 22932 | Bulk Product c55b4e12 | Home & Garden | $655.98 | 12 | ★ 4.2 | 66 | BULK-1b80477e |
| 22933 | Bulk Product 2c17bd73 | Toys & Games | $741.66 | 442 | ★ 1.8 | 75 | BULK-e73cf40e |
| 22934 | Bulk Product 6a097a04 | Books | $280.61 | 53 | ★ 3.2 | 64 | BULK-e914ec47 |
| 22935 | Bulk Product 53f880f6 | Home & Garden | $806.86 | 344 | ★ 1.1 | 34 | BULK-202dcfd6 |
| 22936 | Bulk Product 3d1425c3 | Books | $673.13 | 197 | ★ 2.6 | 74 | BULK-69e59027 |
| 22937 | Bulk Product 1dcc3349 | Home & Garden | $384.02 | 88 | ★ 1.5 | 4 | BULK-8861ccaa |
| 22938 | Bulk Product fa015074 | Sports & Outdoors | $661.48 | 464 | ★ 1.4 | 85 | BULK-8bbaebea |
| 22939 | Bulk Product cbc770d0 | Books | $192.74 | 473 | ★ 0.3 | 87 | BULK-d089c35d |
| 22940 | Bulk Product b2b338d5 | Clothing | $337.09 | 215 | ★ 2.3 | 5 | BULK-e5f399c2 |
| 22941 | Bulk Product 2a28a027 | Electronics | $751.83 | 171 | ★ 1.7 | 88 | BULK-933ca73f |
| 22942 | Bulk Product ea36a8c3 | Electronics | $998.41 | 470 | ★ 4.1 | 93 | BULK-8ae5739a |
| 22943 | Bulk Product 5ef9b416 | Sports & Outdoors | $729.69 | 497 | ★ 1.4 | 74 | BULK-c806a371 |
| 22944 | Bulk Product 39098860 | Electronics | $272.04 | 258 | ★ 3.9 | 4 | BULK-8f4923f2 |
| 22945 | Bulk Product 94b196ec | Home & Garden | $731.83 | 211 | ★ 3.4 | 79 | BULK-cf404d6b |
| 22946 | Bulk Product 84f37e54 | Electronics | $151.51 | 116 | ★ 2.5 | 77 | BULK-9d5bb89d |
| 22947 | Bulk Product 64808320 | Books | $365.47 | 116 | ★ 3.8 | 89 | BULK-8212e4dc |
| 22948 | Bulk Product 54958b17 | Clothing | $603.25 | 98 | ★ 3.7 | 71 | BULK-1b60250a |
| 22949 | Bulk Product 7ff21faf | Home & Garden | $885.06 | 63 | ★ 3.2 | 93 | BULK-02735574 |
| 22950 | Bulk Product 83393223 | Toys & Games | $460.56 | 210 | ★ 0.0 | 64 | BULK-0398d728 |
| 22951 | Bulk Product d874b0a8 | Sports & Outdoors | $44.00 | 308 | ★ 3.3 | 20 | BULK-67980398 |
| 22952 | Bulk Product d7dc507e | Home & Garden | $145.02 | 388 | ★ 3.9 | 83 | BULK-94a58e2c |
| 22953 | Bulk Product 16c0455a | Books | $298.20 | 400 | ★ 4.2 | 38 | BULK-d4845e8e |
| 22954 | Bulk Product a7edbf39 | Toys & Games | $1,002.25 | 9 | ★ 2.8 | 81 | BULK-31abbc6d |
| 22955 | Bulk Product 4c6abac4 | Toys & Games | $153.38 | 184 | ★ 2.2 | 51 | BULK-25a4119e |
| 22956 | Bulk Product 22d586fe | Clothing | $255.72 | 79 | ★ 5.0 | 65 | BULK-85fae57d |
| 22957 | Bulk Product 2fed60ae | Books | $486.80 | 358 | ★ 1.0 | 7 | BULK-1f0deb8e |
| 22958 | Bulk Product c40152e4 | Toys & Games | $924.19 | 219 | ★ 3.9 | 29 | BULK-fc25539b |
| 22959 | Bulk Product 0d9a7892 | Clothing | $418.57 | 436 | ★ 1.5 | 40 | BULK-1acd29dd |
// 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
};
}