我正在尝试使用分页(.Skip(...).Take(...)
在Entity Framework 7中)。它可以在Microsoft SQL Server 2012和2014上正常运行,但是在SQL Server 2008上失败并出现以下错误:
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 Framework 7配置ASP.NET 5网站以对2012年之前的SQL Server使用后备分页方法?
我自己在使用EF 7和sql server 2008时遇到了此问题。幸运的是,在最新的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()
);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句