寻呼与实体框架7和SQL Server 2008 [英] Paging with Entity Framework 7 and SQL Server 2008

查看:158
本文介绍了寻呼与实体框架7和SQL Server 2008的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想使用分页(即 .Skip(...)。以(...)在实体框架7.它的工作原理确定与微软SQL Server 2012的和2014年,但没有对SQL Server 2008中出现以下错误:

I'm trying to use paging (that is .Skip(...).Take(...) in Entity Framework 7. It works OK with Microsoft SQL Server 2012 and 2014, but fails with the following error on SQL Server 2008:

System.Data.SqlClient.SqlException(0x80131904):附近有语法错误偏移。在FETCH语句NEXT选项无效使用。

System.Data.SqlClient.SqlException (0x80131904): Incorrect syntax near 'OFFSET'. Invalid usage of the option NEXT in the FETCH statement.

我已经想通了,这是在EF版本6.1.2重大更改(<一个href=\"http://erikej.blogspot.com/2014/12/a-breaking-change-in-entity-framework.html\">http://erikej.blogspot.com/2014/12/a-breaking-change-in-entity-framework.html).但解决办法是修改文件的EDMX设置ProviderManifestToken属性设置为2008。

I've figured out that it is a breaking change in EF version 6.1.2 (http://erikej.blogspot.com/2014/12/a-breaking-change-in-entity-framework.html). But the fix is to modify EDMX file setting ProviderManifestToken attribute to "2008".

问题是,EF7目前只支持code-第一种情况,因而不存在任何EDMX在那里。现在的问题是:如何与实体框架7配置ASP.NET网站5用于SQL Server的备用分页方法早于2012

The problem is that EF7 currently only supports code-first scenario, thus there is no any EDMX out there. The question is: how to configure ASP.NET 5 website with Entity Framework 7 to use fallback pagination approach for SQL Server older than 2012?

推荐答案

我用.UseRowNumberForPaging遇到使用EF 7和EF 7的最新版本RC1的SQL Server 2008。幸运的是,你可以解决这个自己这个问题()作为在本实施例中所示:

I encountered this problem myself using EF 7 and sql server 2008. Fortunately in the latest rc1 version of EF 7 you can solve this by using .UseRowNumberForPaging() as shown in this example:

services.AddEntityFramework()
  .AddSqlServer()
  .AddDbContext<YourDbContext>(options =>
     options.UseSqlServer(configuration["Data:DefaultConnection:ConnectionString"])
                    // this is needed unless you are on mssql 2012 or higher
                    .UseRowNumberForPaging()
                );

这篇关于寻呼与实体框架7和SQL Server 2008的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆