搭建DbFirst框架
一,在dal层新建项 ADO.NET实体数据模型(选择来自数据库的EF设计器)
二,新建连接(选择要使用的数据库)
三,勾选自己要使用的表 点击完成即可(自动将上下文和Model创建好)
EF调用存储过程
一,使用方法 代码 (方便回忆)
public List<UserInfo> PageShow(string uname,int pageIndex ,int pageSize,out int totalCount,out int pageCount)
{
SqlParameter[] sqls =
{
new SqlParameter("@pageIndex",pageIndex),
new SqlParameter("@pageSize",pageSize),
new SqlParameter("@uname",uname),
new SqlParameter("@totalCount",System.Data.SqlDbType.Int),
new SqlParameter("@pageCount",System.Data.SqlDbType.Int),
};
sqls[3].Direction = System.Data.ParameterDirection.Output;
sqls[4].Direction = System.Data.ParameterDirection.Output;
var list = db.Database.SqlQuery<UserInfo>("exec P_Show @pageIndex, @pageSize, @uname ,@totalCount out ,@pageCount out", sqls).ToList();
totalCount = (int)sqls[3].Value;
pageCount = (int)sqls[4].Value;
return list;
}
存储过程
一,SQL SERVER存储过程基本代码(方便回忆)
--删除存储过程 drop proc P_Show --创建存储过程 create proc P_Show ( @pageIndex int, @pageSize int, @uname nvarchar(20), @totalCount int out, @totalPage int out ) as begin declare @sql nvarchar(max)='select * from UserInfo where 1=1' declare @sqlCount nvarchar(max)='select @totalCount=count(*) from UserInfo where 1=1' --添加条件 if(@uname!=null) begin set @sql += 'and uname like ''%'+@uname+'%''' set @sqlCount += 'and uname like ''%'+@uname+'%''' end set @sql += 'order by UserInfo.UId offset (@pageIndex-1)*@pageSize rows fetch next @pageSize rows only' exec sp_executesql @sql,N'@pageIndex int,@pageSize int',@pageIndex,@pageSize exec sp_executesql @sqlCount,N'@totalCount int out',@totalCount out set @totalPage = ceiling(@totalCount*1.0/@pageSize) end declare @a int ,@b int exec P_Show 1,3,'',@a out,@b out select @a,@b