自SQLSERVER 2012起新增了 Offset Fetch 语法,所以EFCore默认是以此语法生成相应的分页语句的。html
若是咱们的目标数据库低于 2012,那么EFCore默认生成的语句在执行的时候确定会报语法错误。为了兼容旧版本数据库,EFCore提供了 Row_Number( ) 分页方法。数据库
因此修改以下配置,让EF Core 使用传统分页。spa
1 services.AddEntityFramework() 2 .AddDbContext<NFineDbContext>(options =>
3 { 4 options.UseSqlServer( 5 Configuration.GetConnectionString("MDatabase"), 6 b => b.UseRowNumberForPaging() 7 ); 8
9 });
关于SQLSERVER 2008与新版本数据库的分页方式差别对比:code