EntityFramework 6 分页模式
在我的另一篇博客中提到了EntityFrameworkCore 分页问题,
中提到了EntityFrameworkCore在针对不同版本SQL Server数据库时如何指定分页模式,那么如何在EntityFramework 6中指定分页模式呢?
场景重现
在一个项目VS2010开发的项目中,我引用了EntityFramework 6,但数据库使用的是SQL Server 2012.
使用T4模版生成的数据库上下文,使用EntityFramework 6的.Take().Skip()方法生成分页使用的是SQL Server 2008的rows_number()方式.
出现了翻页操作时,页数越靠后,查询速度越慢的情况,4W条多表关联视图数据,第一页查询只用0.5毫秒,直接最后一页查询用了30多秒...
解决办法
然后就想如何在EntityFramework 6中启用SQL Server 2012中的新分页方式offset & fetch呢?
后来发现可以通过编辑器打开.edmx文件(是xml内容),修改ProviderManifestToken="2008"为ProviderManifestToken="2012",然后编译运行,查看现在EntityFramework 6分页语句生成的sql就可以看到使用的是offset & fetch了,同时上面的问题已解决了,每页查询速度基本稳定在秒内.
同理是不是可以通过修改该属性值来使用SQL Server 2005的分页模式?
不过在VS2010中出现如下错误信息,不影响功能,但看着烦,暂时不知道如何消除?

我猜是不是受VS2010或T4模版影响,下次换个高版本的VS或模版看看?
- 后来使用
VS2017生成数据库实体,发现ProviderManifestToken默认就为2012 - 重新使用
VS2010生成数据库实体,发现ProviderManifestToken默认又是2008
参考文档
EntityFramework 6 分页模式的更多相关文章
- PAE 分页模式详解
2016-11-18 记得之前看windows内核原理与实现的时候,在内存管理部分,看到涉及到PAE模式的部分,提到此模式下可以让系统在虚拟地址还是32位宽的情况下,支持64GB的物理内存或者更多.当 ...
- x86汇编分页模式实验 --《ORANGE'S一个操作系统的实现》中 pmtest8.asm解析
序言(废话) : 在看书的过程中发现一开始不是很能理解pmtest8的目的,以及书上说得很抽象..于是在自己阅读过源代码后,将一些自己的心得写在这里. 正文 : 讲解顺序依然按照书上贴代码的顺序来.但 ...
- Entity Framework应用:EntityFramework DataBase First模式
在这篇文章中讲解如何使用EF的DbFirst模式实现数据的增删改查 一.新建控制台应用程序,然后右键->添加新建项,选择数据里面的实体数据模型: 然后点击添加 二.选择来自数据库的EF设计器,并 ...
- mvc,EntityFramework调用分页存储过程
此文讲述mvc4+entityframework6+sqlserver2008环境下调用存储过程,实现分页. 1.分页存储过程代码如下: 分页原理用的row_number()和over()函数实现(没 ...
- EntityFramework Code First 模式下使用数据迁移
启用数据迁移 在程序包管理控制台选择安装了EntityFramework的项目,键入如下指令以启EF用数迁移. Enable-Migrations 命令成功运行后,所选项目下会添加名为Migratio ...
- 基于 EntityFramework 生成 Repository 模式代码
借助 WeihanLi.EntityFramework 实现简单的 Repository Intro 很多时候一些简单的业务都是简单的增删改查,动态生成一些代码完成基本的增删改查,而这些增删改查代码大 ...
- EntityFramework~~~三种模式
1:database-first 2:model-first 3:code-only 此处的code-only也就是大家叫的code-first,但是正确的叫法应该是code-only
- EntityFramework 分页问题探讨之 OrderBy
应用场景 最近被应用程序中页面加载慢的问题所折磨,看似容易的问题,其实并不容易(已经持续两天时间了),经过"侦查",发现了两个"嫌疑犯": EntityFram ...
- ASM:《X86汇编语言-从实模式到保护模式》第16章:Intel处理器的分页机制和动态页面分配
第16章讲的是分页机制和动态页面分配的问题,说实话这个一开始接触是会把人绕晕的,但是这个的确太重要了,有了分页机制内存管理就变得很简单,而且能直接实现平坦模式. ★PART1:Intel X86基础分 ...
- x86 保护模式 十 分页管理机制
x86 保护模式 十 分页管理机制 8.386开始支持分页管理机制 段机制实现虚拟地址到线性地址的转换,分页机制实现线性地址到物理地址的转换.如果不启用分页,那么线性就是物理地址 一 分页管 ...
随机推荐
- 【译】在分析器中使用 Meter Histogram(直方图)解锁见解
您是否正在与应用程序中的性能瓶颈作斗争?不要再观望了!Visual Studio 2022 在其性能分析套件中引入了 Meter Histogram(直方图)功能,为您提供了前所未有的分析和可视化直方 ...
- python3 使用中的问题
gmpy2 GMP(GNU Multiple Precision Arithmetic Library,即GNU高精度算术运算库),它是一个开源的高精度运算库,其中不但有普通的整数.实数.浮点数的高精 ...
- RockyLinux9编译安装MySQL8
Linux版本: Rocky Linux release 9.5 (Blue Onyx) 1.下载 打开MySQL-Community-Server官方下载页面:https://downloads.m ...
- 抽象接口USB的实例化
/* * 接口的使用 * 1.接口使用上也满足多态性 * 2.接口,实际上就是定义了一种规范 * 3.开发中,体会面向接口编程! */ public class USBTest { public st ...
- protocol buffers(protobuf)安装教程
本文按照mac讲解protobuf的安装,windows上比较好安装按照mac的基本流程就可以安装成功,mac上的安装有的时候比较容易出现问题 一.通过brew的方式安装(仅Mac) 需要mac中存在 ...
- Q:Tomcat使用的jdk版本而不依赖环境变量
1)在tomcat中显式配置-JVM启动使用内存大小 解决:vim打开tomcat目录下的bin/catalina.sh文件,在文件最上部配置JAVA_OPTS属性. windows下在catalin ...
- shell 数组函数进阶练习
一维数组的定义.统计.引用和删除等操作. A=( test1 test2 test3 ) ,定义数组一般以括号的方式来定义, 数组的值可以随机定义. echo ${A[0]} ,代表引用第一个数组变量 ...
- AAAT 笔记(P5649)
实际上去掉主函数不长于线段树 3. 对于 LCT 每个点的虚儿子.用 splay 把它们串起来(称为新 splay,虽然是共用的). 具体来说,设 \(1\le x\le n\) 是原 LCT 的 s ...
- Git钩子-每次提交信息添加分支名称
Git钩子是一组脚本,这些脚本对应着Git仓库中的特定事件,每一次事件发生时,钩子会被触发.这允许你可以定制化Git的内部行为,在开发周期中的关键点上触发执行定制化的脚本. 钩子脚本文件通常放置于项目 ...
- 机器学习 | 强化学习(7) | 融合学习与规划(Integrating Learning and Planning)
7-融合学习与规划(Integrating Learning and Planning) 1.导论 基于模型的强化学习(Model-Based Reinforcement Learning) 在上一个 ...