Efficient pagination using OFFSET-FETCH on SQL Server.
| ID | Name | Category | Price | Stock | Rating | Reviews | SKU |
|---|---|---|---|---|---|---|---|
| 14010 | Bulk Product ac0b9a84 | Sports & Outdoors | $555.50 | 403 | ★ 3.1 | 77 | BULK-e2b6daa8 |
| 14011 | Bulk Product ff9124c1 | Home & Garden | $189.76 | 231 | ★ 1.7 | 78 | BULK-09fef77b |
| 14012 | Bulk Product b1219df5 | Electronics | $139.57 | 60 | ★ 3.1 | 17 | BULK-9938e492 |
| 14013 | Bulk Product c1e4b38e | Books | $496.80 | 319 | ★ 4.0 | 39 | BULK-94ad6458 |
| 14014 | Bulk Product deea6454 | Electronics | $376.94 | 51 | ★ 1.1 | 19 | BULK-eabe08fc |
| 14015 | Bulk Product 4020996b | Electronics | $647.64 | 74 | ★ 0.3 | 17 | BULK-2650e273 |
| 14016 | Bulk Product 4d1a8f3e | Books | $433.12 | 305 | ★ 4.0 | 43 | BULK-6162c43b |
| 14017 | Bulk Product c5cbc1c9 | Clothing | $948.91 | 111 | ★ 2.3 | 28 | BULK-07187964 |
| 14018 | Bulk Product 67f8bd5a | Clothing | $175.59 | 100 | ★ 1.3 | 61 | BULK-7c1e948f |
| 14019 | Bulk Product 63200c2e | Sports & Outdoors | $561.66 | 460 | ★ 3.8 | 83 | BULK-ca40ad6a |
| 14020 | Bulk Product 573a843f | Clothing | $180.83 | 310 | ★ 4.3 | 92 | BULK-2acde905 |
| 14021 | Bulk Product 44babd6e | Toys & Games | $76.93 | 183 | ★ 4.8 | 26 | BULK-97d0b239 |
| 14022 | Bulk Product c8116823 | Toys & Games | $23.11 | 249 | ★ 1.1 | 54 | BULK-377e9f9f |
| 14023 | Bulk Product 9db39397 | Sports & Outdoors | $981.84 | 391 | ★ 4.5 | 53 | BULK-cdc85a3a |
| 14024 | Bulk Product 28c38435 | Sports & Outdoors | $20.38 | 187 | ★ 4.5 | 22 | BULK-25516019 |
| 14025 | Bulk Product 020662bc | Sports & Outdoors | $460.03 | 452 | ★ 2.0 | 62 | BULK-fe15f3dc |
| 14026 | Bulk Product ccb4e583 | Electronics | $152.11 | 110 | ★ 3.4 | 26 | BULK-ca54c1fd |
| 14027 | Bulk Product 0d8574a8 | Electronics | $306.65 | 419 | ★ 2.1 | 15 | BULK-477885d4 |
| 14028 | Bulk Product 49e59cae | Electronics | $176.97 | 317 | ★ 1.2 | 21 | BULK-6c011758 |
| 14029 | Bulk Product a8744684 | Toys & Games | $486.04 | 377 | ★ 4.9 | 48 | BULK-2219770c |
| 14030 | Bulk Product 002f02cd | Toys & Games | $681.92 | 51 | ★ 0.6 | 32 | BULK-61c676d7 |
| 14031 | Bulk Product 5e5ca87d | Electronics | $328.87 | 441 | ★ 4.0 | 16 | BULK-e1d5d19a |
| 14032 | Bulk Product c7989496 | Clothing | $475.45 | 464 | ★ 1.3 | 29 | BULK-de19871d |
| 14033 | Bulk Product 9f940abc | Books | $906.38 | 29 | ★ 3.3 | 78 | BULK-a4ad82fc |
| 14034 | Bulk Product 433cfec6 | Electronics | $875.80 | 166 | ★ 2.0 | 38 | BULK-f399021b |
| 14035 | Bulk Product 761ad82b | Clothing | $224.18 | 418 | ★ 4.3 | 54 | BULK-43466547 |
| 14036 | Bulk Product 106265b4 | Toys & Games | $225.58 | 214 | ★ 4.1 | 24 | BULK-00219f4c |
| 14037 | Bulk Product 372f11b1 | Clothing | $508.00 | 433 | ★ 0.2 | 39 | BULK-c4ef8ad6 |
| 14038 | Bulk Product e4b88578 | Electronics | $627.81 | 198 | ★ 0.6 | 84 | BULK-70a96bfd |
| 14039 | Bulk Product f2645002 | Sports & Outdoors | $353.08 | 248 | ★ 4.0 | 39 | BULK-074ca4c1 |
| 14040 | Bulk Product 63ae6d2e | Home & Garden | $711.95 | 53 | ★ 1.7 | 2 | BULK-b4666d5d |
| 14041 | Bulk Product 1f2c72a8 | Sports & Outdoors | $989.77 | 103 | ★ 3.2 | 14 | BULK-3c0112a1 |
| 14042 | Bulk Product 91d65e2a | Clothing | $916.40 | 394 | ★ 0.7 | 21 | BULK-6b0db453 |
| 14043 | Bulk Product 59274c32 | Books | $325.41 | 33 | ★ 1.5 | 16 | BULK-6ffe24eb |
| 14044 | Bulk Product 34631483 | Electronics | $795.94 | 12 | ★ 0.9 | 47 | BULK-7835e969 |
| 14045 | Bulk Product 1b675b1a | Home & Garden | $171.03 | 222 | ★ 3.4 | 6 | BULK-ebd12fdf |
| 14046 | Bulk Product 71edd675 | Home & Garden | $297.19 | 20 | ★ 4.6 | 53 | BULK-ce6f2573 |
| 14047 | Bulk Product 2ca24dee | Home & Garden | $729.22 | 113 | ★ 4.2 | 11 | BULK-92b288ae |
| 14048 | Bulk Product ed91d262 | Sports & Outdoors | $528.44 | 8 | ★ 4.3 | 7 | BULK-4add9f27 |
| 14049 | Bulk Product 2dd44c0c | Sports & Outdoors | $394.20 | 38 | ★ 0.4 | 52 | BULK-72a7409e |
| 14050 | Bulk Product 60b2f6be | Toys & Games | $841.92 | 35 | ★ 0.6 | 70 | BULK-58f3ab15 |
| 14051 | Bulk Product fb847f3f | Electronics | $718.73 | 208 | ★ 2.0 | 28 | BULK-2b3e8715 |
| 14052 | Bulk Product b34d3daa | Sports & Outdoors | $709.15 | 123 | ★ 3.9 | 9 | BULK-3831f211 |
| 14053 | Bulk Product 597298aa | Toys & Games | $694.89 | 241 | ★ 4.5 | 57 | BULK-c9333208 |
| 14054 | Bulk Product fd806221 | Electronics | $210.66 | 457 | ★ 1.4 | 35 | BULK-b02a2cb2 |
| 14055 | Bulk Product ed187017 | Toys & Games | $859.59 | 30 | ★ 1.1 | 47 | BULK-dc749480 |
| 14056 | Bulk Product fd97e8d4 | Home & Garden | $526.35 | 280 | ★ 1.8 | 28 | BULK-340d0c1e |
| 14057 | Bulk Product d0fd68bb | Electronics | $872.26 | 162 | ★ 3.9 | 60 | BULK-66ef3360 |
| 14058 | Bulk Product 2c901286 | Books | $252.49 | 226 | ★ 2.8 | 87 | BULK-8a2f0cd4 |
| 14059 | Bulk Product 62f11862 | Toys & Games | $565.11 | 289 | ★ 3.9 | 21 | BULK-ccfe5739 |
// 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
};
}