我正在尝试使用分页(在Entity Framework 7中为.Skip(...).Take(...)。它可以与Microsoft SQL Server 2012和2014正常工作,但在SQL Server 2008上失败并显示以下错误:



我发现这是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()
                );

关于asp.net-mvc - 使用Entity Framework 7和SQL Server 2008进行分页,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29995502/

10-13 07:46
查看更多