ef8解决sql2008R2不支持fetch命令问题:optionsBuilder.UseSqlServer(sConn, options => options.UseRowNumberForPaging())

netcore er8.

sql2012支持fetch命令,sql2008r2不支持fetch命令,调用ef的skip(100).take(10)时,会报错:

ERROR [.NET TP Worker] (D:\Design\CSharp\海宏发票查重报销管理\iPublic\公共\BaseApiController.cs:114) - 资料维护.Pages.CommBase.FaPiaoTypeApiController.query: :'OFFSET' 附近有语法错误。
在 FETCH 语句中选项 NEXT 的用法无效。
Microsoft.Data.SqlClient.SqlException (0x80131904): 'OFFSET' 附近有语法错误。
在 FETCH 语句中选项 NEXT 的用法无效。

 

ef3之后默认是sql2012了,不支持sql2008了,ef8解决办法:

using EntityFrameworkCore.UseRowNumberForPaging;
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
    optionsBuilder.UseSqlServer(sConn, options => options.UseRowNumberForPaging());
}

 参考:

EF7 (RC1) - Cannot Skip() and Take() in SQL Server 2008 · Issue #4616 · dotnet/efcore (github.com)

posted @   海宏软件  阅读(41)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
历史上的今天:
2019-10-15 极光推送客户端vs2015版,官方vs2017版本的jpush-api-csharp-client-master转来的
点击右上角即可分享
微信分享提示