Asp.net-Mvc
使用 Entity Framework 7 和 SQL Server 2008 進行分頁
我正在嘗試使用分頁(即
.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-break-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() );
如果使用 Edmx 文件,則必須使用 XML 編輯器打開 edmx 文件並更改
ProviderManifestToken="2012" ==> ProviderManifestToken="2008"在第 7 行。
請查看此部落格文章以獲取更多資訊: http ://erikej.blogspot.com.tr/2014/12/a-break-change-in-entity-framework.html