Paging with Entity Framework 7 and SQL Server 2008

后端 未结 6 461
我寻月下人不归
我寻月下人不归 2020-12-08 10:35

I\'m trying to use paging (that is .Skip(...).Take(...) in Entity Framework 7. It works OK with Microsoft SQL Server 2012 and 2014, but fails with the following

6条回答
  •  盖世英雄少女心
    2020-12-08 11:33

    You need to use something like this :

    var MinPageRank = (pageIndex - 1) * pageSize + 1;
    var MaxPageRank = (pageIndex * pageSize);
    
    var person = _context.Person.FromSql($"SELECT * FROM (SELECT [RANK] = ROW_NUMBER() OVER (ORDER BY Surname),* FROM Person) A WHERE A.[RANK] BETWEEN {MinPageRank} AND {MaxPageRank}").ToList();
    
    IQueryable PersonIQ = from s in person.AsQueryable() select s;
    Person = await PaginatedList.CreateAsync(PersonIQ .AsNoTracking(), pageIndex ?? 1, pageSize, sourceFull);
    

提交回复
热议问题