在使用asp.net core的时候,采用take().skip()分页的时候报如下错误:
SqlException: 'OFFSET' 附近有语法错误。 在 FETCH 语句中选项 NEXT 的用法无效。
这个主要是在sql server 2008中,不支持FETCH和NEXT语句(sql server 2012才支持)。
之后在网上参考了一下其他的文章,最终解决了这个问题,记录一下,方便后来人。
解决方法:

public static class DbContextOptionsBuilderExtensions
{
/// <summary>
/// SQL Server specific extension method for Microsoft.EntityFrameworkCore.DbContextOptionsBuilder
/// </summary>
/// <param name="optionsBuilder">Database context options builder</param>
/// <param name="services">Collection of service descriptors</param>
public static void UseSqlServerWithLazyLoading(this DbContextOptionsBuilder optionsBuilder, IServiceCollection services)
{
var nopConfig = services.BuildServiceProvider().GetRequiredService<NopConfig>();

var dataSettings = DataSettingsManager.LoadSettings();
if (!dataSettings?.IsValid ?? true)
return;

var dbContextOptionsBuilder = optionsBuilder.UseLazyLoadingProxies();
//'OFFSET' 附近有语法错误。 在 FETCH 语句中选项 NEXT 的用法无效。
//在使用asp.net core的时候,采用take().skip()分页的时候报如下错误:SqlException: 'OFFSET' 附近有语法错误。 在 FETCH 语句中选项 NEXT 的用法无效。这个主要是在sql server 2008中,不支持FETCH和NEXT语句(sql server 2012才支持)。
nopConfig.UseRowNumberForPaging = true;
if (nopConfig.UseRowNumberForPaging)
dbContextOptionsBuilder.UseSqlServer(dataSettings.DataConnectionString, option => option.UseRowNumberForPaging());
else
dbContextOptionsBuilder.UseSqlServer(dataSettings.DataConnectionString);
}
}

转载于:https://www.cnblogs.com/huangzhen22/p/10767901.html

'OFFSET' 附近有语法错误。 在 FETCH 语句中选项 NEXT 的用法无效。相关推荐

  1. [转]Entity Framework 异常: ‘OFFSET‘ 附近有语法错误。\r\n在 FETCH 语句中选项 NEXT 的用法无效

    [转]Entity Framework 异常: 'OFFSET' 附近有语法错误.\r\n在 FETCH 语句中选项 NEXT 的用法无效 参考文章: (1)[转]Entity Framework 异 ...

  2. oracle 表达式1000,oracle环境下占用编号的方法报语法错误:ORA-01795: 列表中的最大表达式数为 1000...

    oracle 环境下,调用方法NumberCodeGenerateManager.OcuppyModelNumberCodesAfterSaved(ObjectID, modelID, ds)进行编号 ...

  3. c语言中的语义错误和语法错误,C语言程序中对错误的调试

    程序调试 现在我们已经可以编写一个简单的 C语言程序了,但是你可能会犯一些简单的错误.程序的错误通常叫做 bug,而发现和修正这些错误的过程叫做调试.下面有一个带有一些错误的程序,看看你能找出多少. ...

  4. oracle sql语句中like %参数%的用法

    oracle sql语句中like %参数%的用法,在网上找了很久没找到类似的帖子,因此分享一下我的收获,希望对看到的人有帮助 今天在处理oracle数据库数据merge的时候遇到一个问题: 在mer ...

  5. python语法错误常见原因_python3中open()的语法错误,不知道原因

    已解决 我正在写一本<艰难地学习Python>一书,当我试图打开这个文件的时候,我总是遇到一个语法错误,我可能只是做了一些愚蠢的事情,错过了一些显而易见的东西,但我无法理解.非常感谢你的帮 ...

  6. python中print语法错误_Python 3.x中使用print函数出现语法错误(SyntaxError: invalid syntax)的原因...

    在安装了最新版本的Python 3.x版本之后, 去参考别人的代码(基于Python 2.x写的教程),去利用print函数,打印输出内容时,结果却遇到print函数的语法错误: SyntaxErro ...

  7. python setup.py install 提示语法错误_python – 使用“’packages’:[],”安装setup.py时无效的语法...

    我是编程新手,过去几周我一直在研究 python.大多数指令来自资源"学习 Python的艰难之路". 现在我的问题,我刚刚开始进行测验,基本上你已经完成并安装了自己的setup. ...

  8. SQL语句中的select高级用法

    #转载请联系 为了更好的了解下面的知识点,我们先创建两张表并插入数据. # 学生表 +----+-----------+------+--------+--------+--------+------ ...

  9. sql语句中case when then 用法

    Case具有两种格式:简单Case函数和Case搜索函数. 一:简单Case函数 (ELSE'其他')去掉则显示空 缺点不在条件范围内显示不出来原有数值 SELECTCASE SPECIAL_TYPE ...

最新文章

  1. ▼▲Delphi面向对象编程的20条规则
  2. 【杭州(含嘉兴,绍兴,金华,湖州,义乌)】Uber优步司机奖励政策(2月1日~2月7日)...
  3. Perlin Noise algorithms(备忘)
  4. 智能电视系列(4)-高通,天才与极限
  5. 【Python3 SelectKBest 调用personer出现的错误】
  6. cad卸载_怎么把CAD卸载干净,老司机来教你
  7. 前后端分离-从MVC到前后端分离
  8. 为 SQL Server 启用 AWE 内存。
  9. oauth2.0 学习案例demo_Vue3教程:用 Vue3 开发小程序,这里有一份实际的代码案例!...
  10. USB HID学习:一点开发记录
  11. 两个子集pom互相调用_ConcurrentHashMap 使用:每个 Key 只调用 1 个方法
  12. JVM学习-分代收集算法
  13. onTouch事件分发
  14. 统计自然语言处理---信息论基础
  15. 反恐精英online单机版有各种武器
  16. python中冒号报错_Python初学者 冒号报错
  17. 控制算法和编程算法_算法中的编程公平性
  18. 【硬件学习笔记】防反接保护电路
  19. 失焦事件触发_js中表单的聚焦失焦事件
  20. Vue2官网使用及简介

热门文章

  1. 宝塔 php5.6 极速安装_cltphp5.6.6版本安装教程-宝塔练手
  2. python dataframe索引转成列_如何将 Pandas DataFrame 的索引转换为列
  3. android intent拍照,Android通过Intent方式调用相机拍照取得图片
  4. android动态静态广播,Android BroadcastReceiver实现自定义静态广播和动态广播(黏性广播)...
  5. 关于putty连接服务器提示server unexpectedly closed connection解决方法
  6. 针对模拟滚动条插件(jQuery.slimscroll.js)的修改
  7. 用闭包的写法弹出元素的索引值
  8. iOS 两种易混淆的存储路径
  9. WPF GroupBox样式
  10. 重写Android系统自带Dialog