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 ...
随机推荐
- android ANR
下面有两篇关于Android ANR的文章,感觉不错,分享一下! [Android实例] [Sundy系列]网上绝无仅有的Log分析教程及例子!android ANRhttp://blog.csdn. ...
- du 命令,对文件和目录磁盘使用的空间的查看
Linux du命令也是查看使用空间的,但是与df命令不同的是Linux du命令是对文件和目录磁盘使用的空间的查看,还是和df命令有一些区别的. 1.命令格式: du [选项][文件] 2.命令功能 ...
- android学习笔记47——读写SD卡上的文件
读写SD卡上的文件 通过Context的openFileInput.openFileOutput来打开文件输入流.输出流时,程序打开的都是应用程序的数据文件夹里的文件,其存储的文件大小可能都比较有限- ...
- vim制作c的IDE
编译vim源码 (1)安装依赖 sudo apt-get install python-dev python3-dev ruby-dev libx11-dev libgtk2.0-dev libgtk ...
- Maven错误在这里看【项目无法成功编译由于maven未成功下载依赖导致】
- SparkSQL相关语句总结
1.in 不支持子查询 eg. select * from src where key in(select key from test); 支持查询个数 eg. select * from src w ...
- ADF_General JSF系列1_创建一个简单的JSF Application
2015-02-17 Creatd By BaoXinjian
- ADF_Database Develop系列2_通过UML数据库开发之将Logical UML转为Physical Models
2013-05-01 Created By BaoXinjian
- codeforces 553A . Kyoya and Colored Balls 组合数学
Kyoya Ootori has a bag with n colored balls that are colored with k different colors. The colors are ...
- CF 500D New Year Santa Network tree 期望 好题
New Year is coming in Tree World! In this world, as the name implies, there are n cities connected b ...