博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
'OFFSET' 附近有语法错误。 在 FETCH 语句中选项 NEXT 的用法无效。
阅读量:7212 次
发布时间:2019-06-29

本文共 1447 字,大约阅读时间需要 4 分钟。

在使用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

你可能感兴趣的文章
Ubuntu下,用cron实现简单的定时器
查看>>
MySql常用命令总结
查看>>
文本相似度计算之余弦定理
查看>>
SpringMVC访问静态资源
查看>>
yii2视图(布局)中各种函数总结报告及使用场景
查看>>
scala override的学习总结
查看>>
[转]rhel 忘记root密码修改方法
查看>>
java面试专题(一):int和integer的深层次区别
查看>>
JS操作VML
查看>>
Spring-Cloud-eureka(Dalston)的配置
查看>>
忽然间对 生命的游戏 着了魔
查看>>
ES6箭头函数中的this绑定问题
查看>>
hadoop mysql
查看>>
Javascript面向对象编程
查看>>
Findbugs 使用备忘录
查看>>
btrace学习四--bBTrace example
查看>>
java生产者消费者问题(线程同步与线程等待的应用)
查看>>
openstack-mitaka安装文档-Compute服务安装
查看>>
前端基础
查看>>
js加载时间线 (重点掌握)
查看>>