Efficient pagination using OFFSET-FETCH on SQL Server.
| ID | Name | Category | Price | Stock | Rating | Reviews | SKU |
|---|---|---|---|---|---|---|---|
| 14910 | Bulk Product a367a781 | Home & Garden | $793.51 | 231 | ★ 3.3 | 48 | BULK-9fda8580 |
| 14911 | Bulk Product ad0b7e89 | Home & Garden | $872.93 | 220 | ★ 3.3 | 81 | BULK-6806ed1b |
| 14912 | Bulk Product 14e20645 | Home & Garden | $363.99 | 477 | ★ 4.0 | 50 | BULK-d5115803 |
| 14913 | Bulk Product 75e41a41 | Home & Garden | $999.70 | 321 | ★ 0.7 | 74 | BULK-c7f008b1 |
| 14914 | Bulk Product 9fb309aa | Sports & Outdoors | $122.16 | 257 | ★ 3.3 | 81 | BULK-b96aa604 |
| 14915 | Bulk Product d67d03ea | Electronics | $543.22 | 172 | ★ 3.8 | 45 | BULK-11f23c73 |
| 14916 | Bulk Product 15cc9794 | Toys & Games | $164.01 | 118 | ★ 2.5 | 10 | BULK-3dd74ae9 |
| 14917 | Bulk Product 44111e45 | Electronics | $845.84 | 432 | ★ 3.7 | 75 | BULK-59183a1d |
| 14918 | Bulk Product 9c48f1d9 | Home & Garden | $774.02 | 452 | ★ 0.1 | 80 | BULK-68202c57 |
| 14919 | Bulk Product 4f63cbf2 | Sports & Outdoors | $152.33 | 322 | ★ 3.3 | 75 | BULK-3f3704b4 |
| 14920 | Bulk Product 360d0e7e | Toys & Games | $477.98 | 138 | ★ 4.4 | 30 | BULK-56a7aafd |
| 14921 | Bulk Product 9bcdec0c | Sports & Outdoors | $589.98 | 495 | ★ 0.9 | 53 | BULK-8a5f6593 |
| 14922 | Bulk Product 163b7a5c | Books | $942.26 | 478 | ★ 3.5 | 20 | BULK-ab1d05d0 |
| 14923 | Bulk Product 25fb30e8 | Books | $208.51 | 94 | ★ 2.2 | 46 | BULK-291d0414 |
| 14924 | Bulk Product 810b7188 | Sports & Outdoors | $655.73 | 195 | ★ 1.9 | 65 | BULK-a026dca8 |
| 14925 | Bulk Product b898450d | Clothing | $500.71 | 79 | ★ 2.6 | 37 | BULK-358ec469 |
| 14926 | Bulk Product 5647f7a5 | Home & Garden | $682.29 | 409 | ★ 5.0 | 96 | BULK-51edf24a |
| 14927 | Bulk Product 9e25a7c9 | Sports & Outdoors | $696.78 | 477 | ★ 3.7 | 36 | BULK-000917e5 |
| 14928 | Bulk Product f7abb6e6 | Sports & Outdoors | $812.79 | 115 | ★ 2.5 | 63 | BULK-7cc6bfbd |
| 14929 | Bulk Product d9fab138 | Home & Garden | $204.12 | 307 | ★ 2.5 | 10 | BULK-217e3cf1 |
| 14930 | Bulk Product 6e00c367 | Clothing | $135.59 | 254 | ★ 4.7 | 88 | BULK-4e2e049f |
| 14931 | Bulk Product 81deb3d7 | Home & Garden | $129.78 | 459 | ★ 4.8 | 69 | BULK-c2698bd4 |
| 14932 | Bulk Product 8fbda548 | Sports & Outdoors | $137.94 | 459 | ★ 0.8 | 96 | BULK-4b830d9b |
| 14933 | Bulk Product 86432987 | Books | $340.31 | 62 | ★ 2.3 | 35 | BULK-d9c90c5c |
| 14934 | Bulk Product 989f8f08 | Electronics | $243.09 | 67 | ★ 2.8 | 46 | BULK-df964c58 |
| 14935 | Bulk Product 0036ded0 | Books | $349.96 | 273 | ★ 2.3 | 27 | BULK-4a2cfef2 |
| 14936 | Bulk Product 15c3e854 | Sports & Outdoors | $487.70 | 207 | ★ 3.0 | 73 | BULK-38187485 |
| 14937 | Bulk Product 8a007357 | Clothing | $267.10 | 187 | ★ 2.7 | 81 | BULK-5f9fb93c |
| 14938 | Bulk Product 574c6dda | Toys & Games | $427.16 | 152 | ★ 4.1 | 72 | BULK-1a277988 |
| 14939 | Bulk Product f2a09cde | Clothing | $636.77 | 149 | ★ 4.4 | 11 | BULK-2fc54a34 |
| 14940 | Bulk Product 4ac09f6a | Books | $534.82 | 111 | ★ 1.6 | 46 | BULK-c3041c82 |
| 14941 | Bulk Product 2ee7d34c | Books | $515.60 | 330 | ★ 1.7 | 23 | BULK-c3e9a735 |
| 14942 | Bulk Product dfcbe0a5 | Home & Garden | $211.04 | 444 | ★ 4.2 | 98 | BULK-a18539c6 |
| 14943 | Bulk Product a6ea650c | Electronics | $663.98 | 335 | ★ 1.8 | 85 | BULK-e8a7387d |
| 14944 | Bulk Product 49ddcbdc | Toys & Games | $522.87 | 114 | ★ 0.2 | 53 | BULK-954b3217 |
| 14945 | Bulk Product 939944ed | Books | $492.02 | 337 | ★ 4.6 | 85 | BULK-3152ff0c |
| 14946 | Bulk Product e06cdf29 | Toys & Games | $151.09 | 25 | ★ 0.4 | 16 | BULK-714bdcea |
| 14947 | Bulk Product fa64bda4 | Sports & Outdoors | $109.74 | 496 | ★ 2.6 | 59 | BULK-0c2f97a9 |
| 14948 | Bulk Product 402ac5a6 | Home & Garden | $951.90 | 22 | ★ 4.4 | 24 | BULK-8aefad59 |
| 14949 | Bulk Product 956bc32d | Home & Garden | $570.30 | 447 | ★ 0.2 | 35 | BULK-70e93d02 |
| 14950 | Bulk Product ad0cbbe1 | Toys & Games | $810.97 | 225 | ★ 0.7 | 45 | BULK-38104115 |
| 14951 | Bulk Product 2599f729 | Books | $702.62 | 2 | ★ 3.1 | 16 | BULK-5d8b3107 |
| 14952 | Bulk Product ecb15452 | Toys & Games | $812.94 | 214 | ★ 0.7 | 75 | BULK-14924bea |
| 14953 | Bulk Product 82ebe1ff | Clothing | $707.17 | 487 | ★ 2.1 | 89 | BULK-b34c4da0 |
| 14954 | Bulk Product e8e15de7 | Toys & Games | $902.42 | 40 | ★ 3.6 | 81 | BULK-cd90ce69 |
| 14955 | Bulk Product 823e2b9a | Books | $742.91 | 107 | ★ 3.8 | 89 | BULK-58b38d5f |
| 14956 | Bulk Product 4aeef2a6 | Books | $390.45 | 239 | ★ 0.9 | 61 | BULK-c726368a |
| 14957 | Bulk Product ef0ffe99 | Electronics | $284.15 | 411 | ★ 2.7 | 25 | BULK-6e08eb6c |
| 14958 | Bulk Product cc0de580 | Electronics | $135.77 | 216 | ★ 2.6 | 1 | BULK-7d3be282 |
| 14959 | Bulk Product 76d6a74c | Clothing | $960.02 | 299 | ★ 1.6 | 90 | BULK-e4960df1 |
// 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
};
}