在Asp.Net Core MVC项目中使用EF分页查询数据时遇到一个比较麻烦的问题,系统会报如下错误:

.NET Core使用EF分页查询数据报错:OFFSET语法错误问题

分页查询代码:

1 var newQuery = query.Skip((condition.CurrentPage - 1) * condition.PageSize).Take(condition.PageSize);

EF生成的Sql语句:

1 SELECT xxx FROM Table xxx
2 ORDER BY [rx].[Date] DESC, [rx].[UpdateTime] DESC
3 OFFSET @__p_7 ROWS FETCH NEXT @__p_8 ROWS ONLY',N'@__condition_UserId_0 

 

原因是EF在翻译Skip,Take语句时默认使用了Sql Server2012的新特性,OFFSET * FETCH Next的语法,但是改语法不支持2012以下版本的SqlServer,所以会出现上面的错误信息。

升级SqlServer2012就可以解决上述问题。

相关文章:

  • 2021-11-16
  • 2021-07-01
  • 2022-12-23
  • 2022-12-23
  • 2021-11-30
  • 2022-12-23
  • 2022-03-06
  • 2022-02-24
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-10-23
  • 2021-06-15
  • 2021-10-19
相关资源
相似解决方案