EntityFramework 4使用存储过程分页
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使用存储过程分页的更多相关文章
- SQL存储过程分页(通用的拼接SQL语句思路实现)
多表通用的SQL存储过程分页 案例一: USE [Community] GO /****** Object: StoredProcedure [dbo].[Common_PageList] Scrip ...
- 存储过程分页 Ado.Net分页 EF分页 满足90%以上
存储过程分页: create proc PR_PagerDataByTop @pageIndex int, @pageSize int, @count int out as select top(@p ...
- 存储过程 分页【NOT IN】和【>】效率大PK 千万级别数据测试结果
use TTgoif exists (select * from sysobjects where name='Tonge')drop table Tongecreate table Tonge( I ...
- Sql Service存储过程分页
一起是用oracle数据库..感觉oracle数据库强大.查询速度是杠杠的.换了家公司用的是SQL SERVICE.以前用了1年现在捡回以前的记忆.动手写了动态SQL过存储过程分页.感觉和oracle ...
- MS SQLSERVER通用存储过程分页
最近在面试的时候,遇到个奇葩的秃顶老头面试官. 问:写过存储过程分页吗? 答:没写过,但是我知道分页存储的原理,我自己也写过,只是在工作中没写过. 问:那你这么多年工作中就没写过吗? 答:的确没写过, ...
- 【原创】10万条数据采用存储过程分页实现(Mvc+Dapper+存储过程)
有时候大数据量进行查询操作的时候,查询速度很大强度上可以影响用户体验,因此自己简单写了一个demo,简单总结记录一下: 技术:Mvc4+Dapper+Dapper扩展+Sqlserver 目前主要实现 ...
- 我的sql数据库存储过程分页- -
以前用到数据库存储过程分页的时候都是用 not in 但是最近工作的时候,随着数据库记录的不断增大,发现not in的效率 真的不行 虽然都设置了索引,但是当记录达到10w的时候就发现不行了,都是需要 ...
- asp.net利用存储过程分页代码
-最通用的分页存储过程 -- 获取指定页的数据 CREATE PROCEDURE Pagination ), -- 表名 ) = '*', -- 需要返回的列 )='', -- 排序的字段名 , -- ...
- Mvc+Dapper+存储过程分页10万条数据
10万条数据采用存储过程分页实现(Mvc+Dapper+存储过程) 有时候大数据量进行查询操作的时候,查询速度很大强度上可以影响用户体验,因此自己简单写了一个demo,简单总结记录一下: 技术:Mvc ...
随机推荐
- Java并发之CopyOnWriteArrayList
CopyOnWriteArrayList是线程安全的.并且读操作无锁的ArrayList.不像ArrayList默认初始化大小为10的Object[],CopyOnWriteArrayList默认初始 ...
- 无需添加引用执行JS,发布无需带DLL、例子:QQMD5 QQGTK 13位时间戳 取随机数
javascriptDemo.rar 本人写POST经常会遇到用JS来加密的一些网站,然后又不想用C#重写.在百度和论坛里找的JS执行不是64位不支持就是要带个DLL神马的.很讨厌.然后自己就写了个不 ...
- 【linux】man和--help
man和--help都是获取命令帮助的指令. man 格式: man [命令] [root@andon tmp]# man pwd --help 命令 --help [root@andon tmp]# ...
- phpstorm 配置自带webserver ,配置根目录
版权声明:本文为博主原创文章,未经博主允许不得转载. from http://blog.csdn.net/pony_maggie/article/details/52367093 目录(?)[-] ...
- 纯js上传控件——fineuploader
fineuploader是一款基于ajax实现文件上传的插件,具有以下有点: A:支持文件上传进度显示. B:文件拖拽浏览器上传方式 C:Ajax页面无刷新. D:多文件上传. F:跨浏览器. E:跨 ...
- Linux从逻辑地址到物理地址
转自:http://blog.chinaunix.net/uid-24774106-id-3427836.html 我们都知道,动态共享库里面的函数的共享的,这也是动态库的优势所在,就是节省内存.C ...
- c++封装编写线程池
在csapp学习或者其他linux底层编程的过程中,一般都会举一些多线程或多进程的例子,配合底层同步原语.系统调用api来解释怎么创建多线程/多进程. 但是这些例子和实际项目中所用到的多线程/多进程编 ...
- HDU 2176 取(m堆)石子游戏(Nim)
取(m堆)石子游戏 题意: Problem Description m堆石子,两人轮流取.只能在1堆中取.取完者胜.先取者负输出No.先取者胜输出Yes,然后输出怎样取子.例如5堆 5,7,8,9,1 ...
- Standing on Shouder of Giants
Zachary_Fan 如何一步一步用DDD设计一个电商网站(二)-- 项目架构 http://www.cnblogs.com/Zachary-Fan/p/6012454.html HTTP 权威指南 ...
- fiddle 中 显示serverIp
1.快捷键Ctrl+R 或者 菜单->Rules->Customize Rules 2.在CustomRules.js文件里Ctrl+F查找字符串 static function Ma ...