Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Offset/Fetch based paging (Implementation) in EntityFramework (Using LINQ) for SQL Server 2008

I am using SQL Server 2008 and Entity Framework 6.1.3. I wish to implement pagination of data based on OFFSET/FETCH rather than Take() & Skip().

I searched online with no luck. Some posts suggested migrating to SQL Server 2012. Which is not an option in my case.

Can someone suggest how to use OFFSET/FETCH with SQL Server 2008 and EF 6.1.3

like image 237
Immortal Avatar asked Dec 18 '22 05:12

Immortal


1 Answers

This is possible with Entity Framework 6.1.2 and above so you should be OK to use it in your project. The standard Skip and Take methods can't be captured in the same way as others. There are now two additional overload of the Skip/Take methods that take lambdas, so instead of this:

var results = context.MyTable
    .Skip(10)
    .Take(5);

Do this:

var results = context.MyTable
    .Skip(() => 10)
    .Take(() => 5);
like image 82
DavidG Avatar answered Apr 21 '23 17:04

DavidG