码迷,mamicode.com
首页 > 数据库 > 详细

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

时间:2019-09-13 18:05:39      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:contex   str   conf   分页查询   number   statement   sage   数据库sql   地址   

一、 问题

最近.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以后的新特性。

如果你看到这段文字,说明您正使用RSS阅读或转自《一棵树-博客园》,原文地址:https://www.cnblogs.com/atree/p/netcroe-EF-SQL-Server-OFFSET-NEXT-PAGE.html

三、解决办法

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

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

 

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

标签:contex   str   conf   分页查询   number   statement   sage   数据库sql   地址   

原文地址:https://www.cnblogs.com/atree/p/netcroe-EF-SQL-Server-OFFSET-NEXT-PAGE.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!