Efficient pagination using OFFSET-FETCH on SQL Server.
| ID | Name | Category | Price | Stock | Rating | Reviews | SKU |
|---|---|---|---|---|---|---|---|
| 18860 | Bulk Product e6791154 | Toys & Games | $217.02 | 123 | ★ 4.4 | 96 | BULK-a66c1bc0 |
| 18861 | Bulk Product deb7f05c | Home & Garden | $664.69 | 126 | ★ 2.9 | 9 | BULK-f5c0f5e4 |
| 18862 | Bulk Product 48b08953 | Home & Garden | $244.26 | 342 | ★ 3.9 | 3 | BULK-aace4b78 |
| 18863 | Bulk Product 63ee3826 | Books | $349.94 | 75 | ★ 3.1 | 29 | BULK-d21abf75 |
| 18864 | Bulk Product 980059ac | Sports & Outdoors | $211.52 | 138 | ★ 4.4 | 1 | BULK-a561a1c1 |
| 18865 | Bulk Product e25e76c6 | Sports & Outdoors | $68.61 | 300 | ★ 1.8 | 51 | BULK-ff901406 |
| 18866 | Bulk Product 177c36ed | Home & Garden | $380.79 | 243 | ★ 3.5 | 43 | BULK-f485bff3 |
| 18867 | Bulk Product d6939471 | Clothing | $882.32 | 236 | ★ 0.3 | 41 | BULK-39e75ed4 |
| 18868 | Bulk Product c58d3720 | Clothing | $383.71 | 393 | ★ 4.3 | 80 | BULK-43972458 |
| 18869 | Bulk Product 7493404e | Sports & Outdoors | $13.39 | 392 | ★ 2.0 | 8 | BULK-6c958ba0 |
| 18870 | Bulk Product e8231807 | Electronics | $443.09 | 9 | ★ 0.2 | 82 | BULK-de40f933 |
| 18871 | Bulk Product 592763f3 | Toys & Games | $522.60 | 239 | ★ 2.4 | 36 | BULK-2246c470 |
| 18872 | Bulk Product 451dc106 | Clothing | $511.70 | 146 | ★ 3.6 | 53 | BULK-6e346f9b |
| 18873 | Bulk Product 192fd329 | Toys & Games | $566.16 | 398 | ★ 2.0 | 20 | BULK-d7aeebce |
| 18874 | Bulk Product 0e9c38ce | Books | $660.82 | 478 | ★ 4.2 | 68 | BULK-b21f3b60 |
| 18875 | Bulk Product 0df6965e | Toys & Games | $277.86 | 301 | ★ 4.4 | 16 | BULK-2f514bba |
| 18876 | Bulk Product be72b8f7 | Sports & Outdoors | $39.52 | 125 | ★ 3.1 | 70 | BULK-c9835a5a |
| 18877 | Bulk Product b20c3d70 | Clothing | $706.34 | 447 | ★ 1.2 | 46 | BULK-6f2723c2 |
| 18878 | Bulk Product 96cfccc2 | Books | $155.33 | 372 | ★ 0.6 | 42 | BULK-d97aaeb2 |
| 18879 | Bulk Product 4a628068 | Electronics | $1,002.34 | 464 | ★ 0.5 | 41 | BULK-feccd558 |
| 18880 | Bulk Product 63e01aad | Sports & Outdoors | $607.72 | 353 | ★ 2.6 | 26 | BULK-ebce1737 |
| 18881 | Bulk Product c484fe2f | Sports & Outdoors | $271.63 | 340 | ★ 2.0 | 2 | BULK-c80c1e50 |
| 18882 | Bulk Product 5f513750 | Electronics | $322.15 | 244 | ★ 0.3 | 98 | BULK-448c4899 |
| 18883 | Bulk Product 1807bc8e | Electronics | $438.90 | 362 | ★ 3.0 | 50 | BULK-351320f7 |
| 18884 | Bulk Product fe486d9e | Clothing | $341.08 | 258 | ★ 2.9 | 29 | BULK-f9f370d3 |
| 18885 | Bulk Product 2bd3dcee | Toys & Games | $94.09 | 428 | ★ 1.5 | 51 | BULK-7a14bfe3 |
| 18886 | Bulk Product 8fb2cc3d | Clothing | $841.44 | 103 | ★ 4.6 | 0 | BULK-6e45cd32 |
| 18887 | Bulk Product 0905a5c5 | Books | $625.03 | 269 | ★ 3.8 | 50 | BULK-4c1b4f8d |
| 18888 | Bulk Product a483bb72 | Clothing | $952.16 | 199 | ★ 2.2 | 56 | BULK-2bff24c1 |
| 18889 | Bulk Product fff75337 | Clothing | $729.21 | 238 | ★ 1.6 | 98 | BULK-ef7e3d0c |
| 18890 | Bulk Product 7e10259c | Electronics | $457.25 | 432 | ★ 3.0 | 37 | BULK-1407c4e0 |
| 18891 | Bulk Product 7bd477d2 | Books | $645.28 | 92 | ★ 3.5 | 3 | BULK-c476e55c |
| 18892 | Bulk Product 48315e88 | Electronics | $242.13 | 68 | ★ 4.0 | 14 | BULK-0a491f67 |
| 18893 | Bulk Product 573848ef | Toys & Games | $1,007.07 | 87 | ★ 0.5 | 57 | BULK-3a45b55f |
| 18894 | Bulk Product befda5b6 | Home & Garden | $80.19 | 250 | ★ 2.5 | 66 | BULK-f80efff8 |
| 18895 | Bulk Product 259baccf | Electronics | $530.00 | 30 | ★ 3.7 | 83 | BULK-6e9e63c7 |
| 18896 | Bulk Product d859a579 | Toys & Games | $915.66 | 356 | ★ 3.0 | 69 | BULK-e06f67e8 |
| 18897 | Bulk Product 55e81b42 | Toys & Games | $360.96 | 22 | ★ 2.5 | 3 | BULK-c5dc3f80 |
| 18898 | Bulk Product 1f27df62 | Toys & Games | $666.67 | 24 | ★ 4.0 | 57 | BULK-af492e64 |
| 18899 | Bulk Product ac9b2a7e | Sports & Outdoors | $468.40 | 315 | ★ 2.2 | 73 | BULK-5958a5b6 |
| 18900 | Bulk Product 9f412234 | Books | $222.57 | 251 | ★ 4.7 | 50 | BULK-7211b5c6 |
| 18901 | Bulk Product 550452f3 | Electronics | $824.58 | 285 | ★ 0.9 | 62 | BULK-e5dd4e15 |
| 18902 | Bulk Product fbff3b87 | Sports & Outdoors | $959.88 | 486 | ★ 0.5 | 15 | BULK-5d523d52 |
| 18903 | Bulk Product 04525757 | Sports & Outdoors | $793.57 | 276 | ★ 0.3 | 56 | BULK-97b27ea5 |
| 18904 | Bulk Product b66c7b84 | Clothing | $247.94 | 335 | ★ 3.8 | 93 | BULK-36894758 |
| 18905 | Bulk Product c6cdd026 | Home & Garden | $843.10 | 14 | ★ 2.4 | 0 | BULK-ed410961 |
| 18906 | Bulk Product dbd69472 | Toys & Games | $286.06 | 107 | ★ 4.6 | 93 | BULK-ddb294ec |
| 18907 | Bulk Product 3cf7132d | Books | $678.96 | 4 | ★ 4.8 | 94 | BULK-9fb565a7 |
| 18908 | Bulk Product 60d9e5ac | Clothing | $335.92 | 175 | ★ 0.4 | 19 | BULK-41f4ac20 |
| 18909 | Bulk Product 1fe52a3a | Sports & Outdoors | $213.66 | 359 | ★ 2.0 | 98 | BULK-b6efe3ab |
// 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
};
}