.NET Core EF框架使用SQL server 2008数据库分页问题:Incorrect syntax near 'OFFSET'. Invalid usage of the
Posted atree
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.NET Core EF框架使用SQL server 2008数据库分页问题:Incorrect syntax near 'OFFSET'. Invalid usage of the相关的知识,希望对你有一定的参考价值。
一、 问题
最近.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的主要内容,如果未能解决你的问题,请参考以下文章