随笔 - 170  文章 - 0  评论 - 349  阅读 - 234万

.NET Core EF框架使用SQL server 2008数据库分页问题:Incorrect syntax near 'OFFSET'. Invalid usage of the option NEXT in the FETCH statement

一、 问题

最近.Net Core程序部署到服务器,采用EF6。本地数据库是SQL server 2016,服务器数据库安装的是SQL server 2008 R2,在用到分页查询时报错如下:

{
  "Depth": 0,
  "ClassName": "",
  "Message": "Incorrect syntax near 'OFFSET'.\r\nInvalid usage of the option NEXT in the FETCH statement.",
  "Source": "Core .Net SqlClient Data Provider",
}

二、原因

通过问题描述可以分析是数据库SQL server 2008 R2版本SQL语句不支持关键字OFFSET,NEXT,因为这两个关键字是SQL server 2012以后的新特性。

三、解决办法

通过配置.UseRowNumberForPaging() 即配置用row number SQL关键字进行分页。在Startup.cs中,添加代码如下:

public void ConfigureServices(IServiceCollection services) 
{ services.AddDbContext
<ATreeContext> (options => options.UseSqlServer(_config["ConnectionStrings:DefaultConnection"], p => p.UseRowNumberForPaging ())); }

 

posted on   zock  阅读(2148)  评论(3编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
历史上的今天:
2010-09-13 IIS7在Windows Server 2008系统下HTTP重定向(301重定向等)
2010-09-13 iis7规范URL及利用web.config进行重定向
2010-09-13 301重定向方法大全及SEO中网址规范化

点击右上角即可分享
微信分享提示