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)了!
修改后代码如下:


浙公网安备 33010602011771号