首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用Entity Framework 7和SQL Server 2008进行分页

使用Entity Framework 7和SQL Server 2008进行分页
EN

Stack Overflow用户
提问于 2015-05-02 05:34:59
回答 7查看 12.4K关注 0票数 23

我正在尝试使用分页(即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使用回退分页方法?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2015-12-09 04:39:24

我自己在使用EF7和sql server2008时遇到了这个问题。幸运的是,在EF 7的最新rc1版本中,您可以通过使用.UseRowNumberForPaging()来解决此问题,如下例所示:

代码语言:javascript
复制
services.AddEntityFramework()
  .AddSqlServer()
  .AddDbContext<YourDbContext>(options =>
     options.UseSqlServer(configuration["Data:DefaultConnection:ConnectionString"])
                    // this is needed unless you are on mssql 2012 or higher
                    .UseRowNumberForPaging()
                );
票数 15
EN

Stack Overflow用户

发布于 2015-05-31 01:58:42

如果使用Edmx文件,则必须使用XML编辑器打开edmx文件并更改

代码语言:javascript
复制
ProviderManifestToken="2012" ==> ProviderManifestToken="2008"

在第7行。

有关更多信息,请查看这篇博客文章:http://erikej.blogspot.com.tr/2014/12/a-breaking-change-in-entity-framework.html

票数 41
EN

Stack Overflow用户

发布于 2016-04-30 03:21:16

它在RC1中坏了。必须等待RC2。

https://github.com/aspnet/EntityFramework/issues/4616

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29995502

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档