EntityFramework 4使用存储过程分页


 1 CREATE PROC usp_OrgPage_SQL
2 @pageIndex INT,
3 @pageSize INT,
4 @totalCount INT OUTPUT
5 AS
6 BEGIN
7 SET @totalCount = (SELECT COUNT(*) FROM dbo.Organization)
8 SELECT * FROM
9 (
10 SELECT *,ROW_NUMBER() OVER(ORDER BY OrganizationID DESC)AS row FROM dbo.Organization
11 )AS res
12 WHERE res.row BETWEEN @pageSize * (@pageIndex - 1) + 1 AND @pageSize * @pageIndex
13 END


 1 public List<OrganizationModel> SelectPageList(int pageIndex, int pageSize, out int totalCount)
2 {
3 var cmd = DbContext.Connection.CreateCommand();
4 cmd.CommandText = "kydContext.usp_OrgPage_SQL";
5 cmd.CommandType = System.Data.CommandType.StoredProcedure;
6 cmd.Parameters.Add(new EntityParameter
7 {
8 ParameterName = "pageIndex",
9 Value = pageIndex
10 });
11 cmd.Parameters.Add(new EntityParameter
12 {
13 ParameterName = "pageSize",
14 Value = pageSize
15 });
16 cmd.Parameters.Add(new EntityParameter
17 {
18 ParameterName = "totalCount",
19 Direction = System.Data.ParameterDirection.Output
20 });
21
22 cmd.Connection.Open();
23 DbDataReader reader = cmd.ExecuteReader(System.Data.CommandBehavior.SequentialAccess);
24 List<OrganizationModel> organizationModelList = new List<OrganizationModel>();
25 while (reader.Read())
26 {
27 OrganizationModel organizationModel = new OrganizationModel();
28 organizationModel.OrganizationID = reader.GetInt32(reader.GetOrdinal("OrganizationID"));
29 organizationModel.OrganizationName = reader.GetString(reader.GetOrdinal("OrganizationName"));
30 organizationModelList.Add(organizationModel);
31 }
32 reader.Close();
33 totalCount = Convert.ToInt32(cmd.Parameters["totalCount"].Value);
34 cmd.Connection.Close();
35 return organizationModelList;
36 }

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

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

EntityFramework 4使用存储过程分页,布布扣,bubuko.com

时间: 2024-10-21 14:55:48

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

sql 高性能存储过程分页

USE [Lyjjr] GO /****** Object: StoredProcedure [dbo].[P_ViewPage] Script Date: 05/29/2015 17:18:56 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROC [dbo].[P_ViewPage] @TableName VARCHAR(200), --表名 @FieldList VARCHAR(2000), --显示列名,如

C#存储过程分页

SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE  PROCEDURE [dbo].[UP_GetRecordByPage] @tblName      varchar(255),       -- 表名 @fldName      varchar(255),       -- 主键字段名    @OrderfldName   varchar(255)='',   -- 排序字段 @PageSize     int = 10,    

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

存储过程分页: 1 create proc PR_PagerDataByTop 2 @pageIndex int, 3 @pageSize int, 4 @count int out 5 as 6 select top(@pageSize) * from dbo.userInfo where ID not in 7 ( 8 select top((@pageIndex-1)*@pageSize) ID from dbo.userInfo 9 ) 10 set @count = (select C

SQL 存储过程 分页

set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go -- ============================================= -- Author: *** -- Create date: 2014-03-27 20:00 -- Description: 采用最新的 row_number() over 技术高效分页方法 -- ============================================= ALTER PRO

Oracle ——存储过程——分页

输入:表名.每页显示的记录数.当前页输出:总记录数.总页数.结果集--首先,创建一个包,定义游标类型CREATE OR REPLACE PACKAGE fenye_package ISTYPE fenye_cursor IS REF CURSOR;END fenye_package; --输入:表名.每页显示的记录数.当前页--输出:总记录数.总页数.结果集CREATE OR REPLACE PROCEDURE sp_fenye(tableName   IN VARCHAR2,--表名称 max

我的日记本程序日记列表存储过程分页(2)改进正式可用

我的日记本程序日记列表存储过程分页 --drop proc procDiary create proc procDiary --获取日记列表的分页存储过程 @pageSize int =12, -- @pageIndex int=1, --页码序号 @totalCount int output, --总记录数 @diaryWhere varchar(255) as declare @strSql varchar(500); set @totalCount =CONVERT(int,(select

sql server存储过程分页,行变列

CREATE PROCEDURE [dbo].[PROC_GetPriviousAndNextDetailContent]@Index varchar(20),--表主键@Table varchar(100),--从哪个表获取数据@Columns varchar(100),--需要获取哪些字段@OrderStr varchar(100),--排序字段及方式@Where1    varchar(100),--row_number中的初步过滤条件@Where2 varchar(100)--当前要查询

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

-最通用的分页存储过程 -- 获取指定页的数据 CREATE PROCEDURE Pagination @tblName varchar(255), -- 表名 @strGetFields varchar(1000) = '*', -- 需要返回的列 @fldName varchar(255)='', -- 排序的字段名 @PageSize int = 10, -- 页尺寸 @PageIndex int = 1, -- 页码 @doCount bit = 0, -- 返回记录总数, 非 0 值则

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

有时候大数据量进行查询操作的时候,查询速度很大强度上可以影响用户体验,因此自己简单写了一个demo,简单总结记录一下: 技术:Mvc4+Dapper+Dapper扩展+Sqlserver 目前主要实现了两种分页:一种采用 PagedList.Mvc 实现的分页 两外一种采用 ajax异步加载分页 采用比较常用的jquery.pagination 分页插件. 功能相对比较简单仅供学习交流. 通用存储过程 1 USE [MvcProcPageDB] 2 GO 3 4 /****** Object: