Imm*_*tal 2 sql-server pagination entity-framework sql-server-2008 entity-framework-6
我正在使用SQL Server 2008和Entity Framework 6.1.3.我希望实现基于OFFSET/FETCH而不是Take()&Skip()的数据分页.
我在线搜索没有运气.有些帖子建议迁移到SQL Server 2012.在我的情况下,这不是一个选项.
有人可以建议如何在SQL Server 2008和EF 6.1.3中使用OFFSET/FETCH
使用Entity Framework 6.1.2及更高版本可以实现这一点,因此您可以在项目中使用它.标准的Skip and Take方法无法以与其他方式相同的方式捕获.现在有两个额外的Skip/Take方法重载采用lambdas,所以不是这样:
var results = context.MyTable
.Skip(10)
.Take(5);
Run Code Online (Sandbox Code Playgroud)
做这个:
var results = context.MyTable
.Skip(() => 10)
.Take(() => 5);
Run Code Online (Sandbox Code Playgroud)
修复方法是使用 XML 编辑器修改您的 EDMX 文件,并将 ProviderManifestToken 的值从 2012 年更改为 2008 年。我在 EDMX 文件的第 7 行发现了这一点。保存该更改后,将使用“旧”的 SQL Server 2008 兼容语法生成分页 SQL。
| 归档时间: |
|
| 查看次数: |
4601 次 |
| 最近记录: |