自SQLSERVER 2012起新增了 Offset Fetch 語法,因此EFCore默認是以此語法生成相應的分頁語句的。
如果我們的目標數據庫低於 2012,那么EFCore默認生成的語句在執行的時候肯定會報語法錯誤。為了兼容舊版本數據庫,EFCore提供了 Row_Number( ) 分頁方法。
所以修改如下配置,讓EF Core 使用傳統分頁。
1 services.AddEntityFramework() 2 .AddDbContext<NFineDbContext>(options =>
3 { 4 options.UseSqlServer( 5 Configuration.GetConnectionString("MDatabase"), 6 b => b.UseRowNumberForPaging() 7 ); 8
9 });
關於SQLSERVER 2008與新版本數據庫的分頁方式差異對比: