System.Data.SqlClient.SqlException: 'OFFSET' 附近有语法错误

情况说明:测试环境下使用的sql server 2017,但是客户正式服务器数据库使用的是sql server 2008 R2,于是,在测试环境正常的代码,在正式环境下,出现错误。
这里使用的是DBFirst方式

错误如下:
System.Data.SqlClient.SqlException: ‘OFFSET’ 附近有语法错误

这个问题是使用EF分页作用在Sql server 2008上时的错误问题
即EF中的.Skip(…).Take(…)
解决办法:

  1. 首先找到edmx文件。
    2.把下面的2012的值替换为2008即可。
    ProviderManifestToken=“2012” ==> ProviderManifestToken=“2008”

上面验证可行

说明:EF Core的方式没有验证,只是猜测可行
在使用EF Core 与Sql server 2008遇到这个问题时,可以这样

services.AddDbContext(options => options.UseSqlServer(connection,b=>b.UseRowNumberForPaging()));

资料参考:
https://stackoverflow.com/questions/29995502/paging-with-entity-framework-7-and-sql-server-2008
https://www.cnblogs.com/yhdkzy/p/7919426.html

猜你喜欢

转载自blog.csdn.net/Vincent_yuan1991/article/details/84344259