添加对SQL2008分页的支持

main
bicijinlian 2 years ago
parent 57f6976efb
commit 90540e4fb4

@ -57,4 +57,17 @@ public class AppDbContext : DbContext
public DbSet<Account> Accounts { get; set; }
}
```
```
## SQL Server 2008 分页错误
原因EF Core 放弃了对SQL2008的支持特别是分页查询会报错"OFFSET 附近有语法错误",原因是OFFSET的分页语法从SQL Server 2012开始支持。
解决:使用第三方库 "EntityFrameworkCore.UseRowNumberForPaging", 在SQL 2008中改用 Row_Number() 分页. 如下方式配置项目使用:加一个 .UseRowNumberForPaging()
```csharp
//原使用方法
xx.UseSqlServer(ConnectString, opt => {})
//修改后的使用方法
.UseSqlServer(ConnectString, opt => { opt.UseRowNumberForPaging(); })
```

@ -3,6 +3,8 @@
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.DependencyInjection;
using EntityFrameworkCore.UseRowNumberForPaging;
namespace EFCore7Study.DataService
{
/// <summary>
@ -36,7 +38,7 @@ namespace EFCore7Study.DataService
}
optionsBuilder
.UseSqlServer(ConnectString)
.UseSqlServer(ConnectString, opt => { opt.UseRowNumberForPaging(); })
.EnableSensitiveDataLogging();
}
}

@ -7,6 +7,7 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="EntityFrameworkCore.UseRowNumberForPaging" Version="0.4.0" />
<PackageReference Include="Microsoft.DependencyValidation.Analyzers" Version="0.11.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="7.0.5" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="7.0.5" />

Loading…
Cancel
Save