zoukankan      html  css  js  c++  java
  • .NET Core使用EF分页查询数据报错:OFFSET语法错误问题

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

    分页查询代码:

    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就可以解决上述问题。

  • 相关阅读:
    资源限制
    垃圾收集器
    GC日志
    happens-before
    maven相互依赖导致无法编译成功
    LVM-逻辑卷常用命令和示意图
    取消RAID5
    扩展RAID5的容量
    模拟RAID5损坏
    创建RAID5
  • 原文地址:https://www.cnblogs.com/learn-dotnet/p/5589936.html
Copyright © 2011-2022 走看看