我正在尝试使用分页(即Entity Framework7中的.Skip(...).Take(...)
)。它在Microsoft SQL Server2012和2014上运行正常,但在SQL Server2008上失败,出现以下错误:
System.Data.SqlClient.SqlException (0x80131904):'OFFSET‘附近的语法不正确。FETCH语句中的NEXT选项用法无效。
我发现这是EF版本6.1.2 (http://erikej.blogspot.com/2014/12/a-breaking-change-in-entity-framework.html)中的一个突破性变化。但是修复方法是修改EDMX文件,将ProviderManifestToken属性设置为"2008“。
问题是,EF7目前只支持代码优先的方案,因此没有任何EDMX。问题是:如何使用Entity Framework7配置SQL5网站,以便对2012年之前的ASP.NET使用回退分页方法?
发布于 2015-12-09 04:39:24
我自己在使用EF7和sql server2008时遇到了这个问题。幸运的是,在EF 7的最新rc1版本中,您可以通过使用.UseRowNumberForPaging()来解决此问题,如下例所示:
services.AddEntityFramework()
.AddSqlServer()
.AddDbContext<YourDbContext>(options =>
options.UseSqlServer(configuration["Data:DefaultConnection:ConnectionString"])
// this is needed unless you are on mssql 2012 or higher
.UseRowNumberForPaging()
);
发布于 2015-05-31 01:58:42
如果使用Edmx文件,则必须使用XML编辑器打开edmx文件并更改
ProviderManifestToken="2012" ==> ProviderManifestToken="2008"
在第7行。
有关更多信息,请查看这篇博客文章:http://erikej.blogspot.com.tr/2014/12/a-breaking-change-in-entity-framework.html
发布于 2016-04-30 03:21:16
它在RC1中坏了。必须等待RC2。
https://stackoverflow.com/questions/29995502
复制相似问题