Skip and Take在Entity Framework中生成异常

Sim*_*ant 1 .net c# sql linq entity-framework

执行以下查询时,我在InnerException中收到错误

{"OFFSET附近的语法不正确."FETCH语句中NEXT选项的使用无效.关键字'AS'附近的语法不正确.'OFFSET'附近的语法不正确.INFCH语句中NEXT选项的使用无效.语法不正确关键字'AS'.'OFFSET'附近的语法不正确.在FETCH语句中使用NEXT选项无效.关键字'AS'附近的语法不正确."}

C#代码:

var db = new DigilibEntities();

List<title> titles = new List<title>();

titles = db.titles
  .Include("themes")
  .Include("subjects")
  .Include("grades")
  .Where(x => x.themes.Count() == 0 || 
              x.subjects.Count() == 0 || 
              x.grades.Count() == 0)
  .OrderBy(x => x.id)
  .Skip(10)
  .Take(10)
  .ToList();
Run Code Online (Sandbox Code Playgroud)

Rem*_*anu 6

默认情况下,EF将使用FETCH和OFFSET语法进行分页.旧版本的SQL Server不支持此语法.您需要将其设置ProviderManifestToken为2008,以便EF将生成旧的2008风格语法.

使用EDMX和SQL Server 2008/2005时,实体框架6.1.2发生了重大变化