CREATE PROC usp_OrgPage_SQL
@pageIndex INT,
@pageSize INT,
@totalCount INT OUTPUT
AS
BEGIN
SET @totalCount = (SELECT COUNT(*) FROM dbo.Organization)
SELECT * FROM
(
SELECT *,ROW_NUMBER() OVER(ORDER BY OrganizationID DESC)AS row FROM dbo.Organization
)AS res
WHERE res.row BETWEEN @pageSize * (@pageIndex - 1) + 1 AND @pageSize * @pageIndex
END

 public List<OrganizationModel> SelectPageList(int pageIndex, int pageSize, out int totalCount)
{
var cmd = DbContext.Connection.CreateCommand();
cmd.CommandText = "kydContext.usp_OrgPage_SQL";
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.Parameters.Add(new EntityParameter
{
ParameterName = "pageIndex",
Value = pageIndex
});
cmd.Parameters.Add(new EntityParameter
{
ParameterName = "pageSize",
Value = pageSize
});
cmd.Parameters.Add(new EntityParameter
{
ParameterName = "totalCount",
Direction = System.Data.ParameterDirection.Output
}); cmd.Connection.Open();
DbDataReader reader = cmd.ExecuteReader(System.Data.CommandBehavior.SequentialAccess);
List<OrganizationModel> organizationModelList = new List<OrganizationModel>();
while (reader.Read())
{
OrganizationModel organizationModel = new OrganizationModel();
organizationModel.OrganizationID = reader.GetInt32(reader.GetOrdinal("OrganizationID"));
organizationModel.OrganizationName = reader.GetString(reader.GetOrdinal("OrganizationName"));
organizationModelList.Add(organizationModel);
}
reader.Close();
totalCount = Convert.ToInt32(cmd.Parameters["totalCount"].Value);
cmd.Connection.Close();
return organizationModelList;
}

对于EntityFramework调用存储过程通常想到的是"Context.ExcuteFunction()"。

但是ExcuteFunction不返回任何结果,只有影响的行数,所以如果是通过存储过程实现分页及查询还得使用传统的command方式

EntityFramework 4使用存储过程分页的更多相关文章

  1. SQL存储过程分页(通用的拼接SQL语句思路实现)

    多表通用的SQL存储过程分页 案例一: USE [Community] GO /****** Object: StoredProcedure [dbo].[Common_PageList] Scrip ...

  2. 存储过程分页 Ado.Net分页 EF分页 满足90%以上

    存储过程分页: create proc PR_PagerDataByTop @pageIndex int, @pageSize int, @count int out as select top(@p ...

  3. 存储过程 分页【NOT IN】和【>】效率大PK 千万级别数据测试结果

    use TTgoif exists (select * from sysobjects where name='Tonge')drop table Tongecreate table Tonge( I ...

  4. Sql Service存储过程分页

    一起是用oracle数据库..感觉oracle数据库强大.查询速度是杠杠的.换了家公司用的是SQL SERVICE.以前用了1年现在捡回以前的记忆.动手写了动态SQL过存储过程分页.感觉和oracle ...

  5. MS SQLSERVER通用存储过程分页

    最近在面试的时候,遇到个奇葩的秃顶老头面试官. 问:写过存储过程分页吗? 答:没写过,但是我知道分页存储的原理,我自己也写过,只是在工作中没写过. 问:那你这么多年工作中就没写过吗? 答:的确没写过, ...

  6. 【原创】10万条数据采用存储过程分页实现(Mvc+Dapper+存储过程)

    有时候大数据量进行查询操作的时候,查询速度很大强度上可以影响用户体验,因此自己简单写了一个demo,简单总结记录一下: 技术:Mvc4+Dapper+Dapper扩展+Sqlserver 目前主要实现 ...

  7. 我的sql数据库存储过程分页- -

    以前用到数据库存储过程分页的时候都是用 not in 但是最近工作的时候,随着数据库记录的不断增大,发现not in的效率 真的不行 虽然都设置了索引,但是当记录达到10w的时候就发现不行了,都是需要 ...

  8. asp.net利用存储过程分页代码

    -最通用的分页存储过程 -- 获取指定页的数据 CREATE PROCEDURE Pagination ), -- 表名 ) = '*', -- 需要返回的列 )='', -- 排序的字段名 , -- ...

  9. Mvc+Dapper+存储过程分页10万条数据

    10万条数据采用存储过程分页实现(Mvc+Dapper+存储过程) 有时候大数据量进行查询操作的时候,查询速度很大强度上可以影响用户体验,因此自己简单写了一个demo,简单总结记录一下: 技术:Mvc ...

随机推荐

  1. 微软为Visual Studio开发助手拓展C++支持

    近日,微软宣布了一项 Visual Studio“开发助手”(Developer Assistant)插件的重大更新,其现已支持“基于 C++ 的情境感知 web 解决方案”.开发助手能够嵌入 Vis ...

  2. MappedByteBuffer读写文件

    一. MappedByteBuffer java把文件映射到内存中,避免堆内存产生大对象引起full gc.mappedByteBuffer的读写速度都要超过堆内读写文件的速度 public clas ...

  3. ARM NEON编程系列1-导论

    ARM NEON 编程系列1 - 导论 前言 本系列博文用于介绍ARM CPU下NEON指令优化. 博文github地址:github 相关代码github地址:github NEON历史 ARM处理 ...

  4. HDU5221 Occupation 树链剖分

    题意: 给出一棵树,root=1,树有点权,有一个人叫做M 有3种操作: 1 u v 把u到v路径上的所有点的点权都给M 2 u 若u的点权在M手上,拿走 3 u 把u为根的子树的所有点权都给M 每一 ...

  5. NeHe OpenGL教程 第三十五课:播放AVI

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  6. suibi 117

    -Djava.net.preferIPv4Stack=true re.findall(r"^(\d+)" , content) content = content.replace( ...

  7. linux命令(3):复制,剪切(文件和文件夹)

    一:文件命令:cp,mv linux 怎么样复制文件夹内所有文件到另一个文件夹?   cp -Rf /home/user1/* /root/temp/ 将 /home/user1目录下的所有东西拷到/ ...

  8. PHP框架 Laravel Eloquent ORM 批量插入数据 && 批量更新目前没有

    foreach ($products as $v=>$a) { $count[] = array('product_name' => $a['name'], 'product_weight ...

  9. UEditor使用有感(黄色)

    UEditor 介绍 UEditor 是由百度「FEX前端研发团队」开发的所见即所得富文本web编辑器,具有轻量,可定制,注重用户体验等特点,开源基于MIT协议,允许自由使用和修改代码. 1 入门部署 ...

  10. js封装 与 js高级用法 问题集合

    1. 什么是自执行的匿名函数? 它是指形如这样的函数: (function {// code})(); 2. 疑问 为什么(function {// code})();可以被执行, 而function ...