Efficient pagination using OFFSET-FETCH on SQL Server.
| ID | Name | Category | Price | Stock | Rating | Reviews | SKU |
|---|---|---|---|---|---|---|---|
| 20910 | Bulk Product 3ff34373 | Toys & Games | $664.84 | 296 | ★ 0.0 | 99 | BULK-fbbb4297 |
| 20911 | Bulk Product bd7acb99 | Books | $637.18 | 425 | ★ 3.4 | 5 | BULK-b44ad849 |
| 20912 | Bulk Product ade92815 | Clothing | $966.65 | 184 | ★ 4.5 | 58 | BULK-fb534ec6 |
| 20913 | Bulk Product 004dfb3e | Toys & Games | $569.95 | 359 | ★ 0.4 | 10 | BULK-395d7bb5 |
| 20914 | Bulk Product f6662e18 | Clothing | $834.26 | 254 | ★ 0.5 | 32 | BULK-2fb50c73 |
| 20915 | Bulk Product e5fd4d39 | Sports & Outdoors | $472.35 | 260 | ★ 3.0 | 50 | BULK-e693b216 |
| 20916 | Bulk Product 9d491943 | Electronics | $370.46 | 96 | ★ 0.6 | 54 | BULK-c4849b57 |
| 20917 | Bulk Product cf590c2d | Toys & Games | $802.29 | 132 | ★ 1.3 | 21 | BULK-c62201d5 |
| 20918 | Bulk Product 3d5b212b | Clothing | $469.70 | 354 | ★ 4.8 | 77 | BULK-93dbcfdc |
| 20919 | Bulk Product 94325bda | Clothing | $30.81 | 463 | ★ 4.4 | 11 | BULK-531a6b4f |
| 20920 | Bulk Product 085222d8 | Toys & Games | $216.71 | 63 | ★ 1.7 | 76 | BULK-76090a90 |
| 20921 | Bulk Product 31259d11 | Home & Garden | $318.50 | 99 | ★ 2.7 | 58 | BULK-688c2b4a |
| 20922 | Bulk Product 4ce405f5 | Electronics | $413.68 | 396 | ★ 3.8 | 24 | BULK-9a7562d4 |
| 20923 | Bulk Product 32ed3d68 | Home & Garden | $806.32 | 13 | ★ 3.6 | 30 | BULK-2893fba8 |
| 20924 | Bulk Product 6eb9fb2c | Sports & Outdoors | $759.71 | 93 | ★ 2.5 | 96 | BULK-80b3adec |
| 20925 | Bulk Product 0f02d069 | Sports & Outdoors | $798.69 | 123 | ★ 2.6 | 58 | BULK-0d6579a8 |
| 20926 | Bulk Product ddae41f9 | Sports & Outdoors | $926.75 | 97 | ★ 2.4 | 65 | BULK-8be78516 |
| 20927 | Bulk Product a9252fdd | Sports & Outdoors | $525.55 | 43 | ★ 4.2 | 7 | BULK-41a93a45 |
| 20928 | Bulk Product 9d6c7034 | Home & Garden | $86.59 | 111 | ★ 3.9 | 57 | BULK-1069ef75 |
| 20929 | Bulk Product 5181691d | Electronics | $135.59 | 29 | ★ 0.0 | 62 | BULK-f8741336 |
| 20930 | Bulk Product 5b73d747 | Electronics | $746.71 | 155 | ★ 1.0 | 2 | BULK-a5a30652 |
| 20931 | Bulk Product 6acb1f58 | Clothing | $750.21 | 48 | ★ 0.3 | 80 | BULK-9b297bea |
| 20932 | Bulk Product 9eeddccf | Books | $105.48 | 278 | ★ 4.4 | 64 | BULK-5c323c68 |
| 20933 | Bulk Product 0198b84e | Electronics | $312.32 | 89 | ★ 1.4 | 96 | BULK-c8972aa4 |
| 20934 | Bulk Product 839d3d0d | Toys & Games | $233.96 | 456 | ★ 2.1 | 8 | BULK-3ddf2d2c |
| 20935 | Bulk Product 4232818f | Electronics | $905.58 | 438 | ★ 3.8 | 50 | BULK-777b213e |
| 20936 | Bulk Product 915e9f40 | Sports & Outdoors | $425.95 | 145 | ★ 4.9 | 71 | BULK-d154577b |
| 20937 | Bulk Product 1d583db3 | Sports & Outdoors | $765.25 | 471 | ★ 1.8 | 82 | BULK-b621d3e2 |
| 20938 | Bulk Product 2b05b987 | Books | $508.52 | 233 | ★ 1.1 | 21 | BULK-d73cd389 |
| 20939 | Bulk Product 9cdee9cb | Toys & Games | $232.01 | 48 | ★ 2.6 | 89 | BULK-ca2c9871 |
| 20940 | Bulk Product 43efb2ca | Toys & Games | $214.09 | 481 | ★ 3.6 | 82 | BULK-defc46b9 |
| 20941 | Bulk Product 3b07c441 | Electronics | $16.31 | 246 | ★ 3.8 | 97 | BULK-2c3afffb |
| 20942 | Bulk Product 05044c14 | Sports & Outdoors | $135.28 | 287 | ★ 0.6 | 34 | BULK-608fb45b |
| 20943 | Bulk Product 9b51d442 | Books | $362.28 | 294 | ★ 1.5 | 78 | BULK-6f89a39a |
| 20944 | Bulk Product 0e474b2b | Toys & Games | $323.00 | 443 | ★ 2.5 | 12 | BULK-e27ea62c |
| 20945 | Bulk Product 23b3224c | Home & Garden | $772.48 | 213 | ★ 3.7 | 23 | BULK-0509bd93 |
| 20946 | Bulk Product ad60f9f8 | Sports & Outdoors | $31.83 | 256 | ★ 1.6 | 33 | BULK-fa080ae0 |
| 20947 | Bulk Product f92b871f | Home & Garden | $926.96 | 418 | ★ 3.3 | 47 | BULK-7bc8cee4 |
| 20948 | Bulk Product 8d8eade7 | Clothing | $898.22 | 300 | ★ 2.3 | 85 | BULK-4aa60937 |
| 20949 | Bulk Product 613e2891 | Electronics | $206.86 | 425 | ★ 3.3 | 3 | BULK-b36c15da |
| 20950 | Bulk Product 069ae64d | Home & Garden | $270.39 | 237 | ★ 4.2 | 68 | BULK-66ae8173 |
| 20951 | Bulk Product a6eeea85 | Books | $14.89 | 16 | ★ 4.3 | 27 | BULK-92b8cf12 |
| 20952 | Bulk Product 4dda58ab | Clothing | $143.38 | 147 | ★ 2.0 | 48 | BULK-f52aa415 |
| 20953 | Bulk Product d08058ad | Sports & Outdoors | $198.87 | 87 | ★ 4.7 | 7 | BULK-31202d96 |
| 20954 | Bulk Product b83b3116 | Sports & Outdoors | $908.32 | 459 | ★ 1.6 | 78 | BULK-279628a5 |
| 20955 | Bulk Product aafbe499 | Home & Garden | $409.50 | 362 | ★ 4.5 | 73 | BULK-2d3d7e1c |
| 20956 | Bulk Product 1b559414 | Home & Garden | $547.01 | 69 | ★ 4.8 | 5 | BULK-1daf676c |
| 20957 | Bulk Product e4a2d9f5 | Sports & Outdoors | $920.74 | 343 | ★ 1.0 | 84 | BULK-5b56ee3b |
| 20958 | Bulk Product 1fb7f79c | Home & Garden | $393.35 | 129 | ★ 2.0 | 2 | BULK-94475913 |
| 20959 | Bulk Product 7dfc3f33 | Books | $673.95 | 9 | ★ 1.2 | 68 | BULK-65b62ff7 |
// 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
};
}