efcore 连接SqlServer2008R2报错:'OFFSET' 附近有语法错误。 在 FETCH 语句中选项 NEXT 的用法无效

用的是EF Core 6 ,连接SqlServer 2008R2时,生成的分页方法会报错,只需要指定ProviderName时加上版本号就行:Microsoft.EntityFrameworkCore.SqlServer@2008,高于2008版本就按默认就行:providerName:default 或者providerName:Microsoft.EntityFrameworkCore.SqlServer

解决过程:

从AddDbPool一步步跟踪上去,会发现在Microsoft.Extensions.DependencyInjection里面,根据版本2008加了句:dbContextOptionsBuilder.ReplaceService<IQueryTranslationPostprocessorFactory, SqlServer2008QueryTranslationPostprocessorFactory>();

这个SqlServer2008QueryTranslationPostprocessorFactory是国外一个高手改的,已经被微软官方加到Microsoft.Extensions.DependencyInjection里了,不需要单独引用他的包(EntityframeCore.UseRowNumberForPaging)了!

修改后代码如下:

 

 

posted @   哈利波特与火龙果  阅读(619)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器
· 面试官:你是如何进行SQL调优的?
点击右上角即可分享
微信分享提示