首页 > 数据库技术 > 详细

EF(DbFirst) 存储过程基本用法

时间:2021-08-18 15:15:56      阅读:29      评论:0      收藏:0      [点我收藏+]

搭建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

 

EF(DbFirst) 存储过程基本用法

原文:https://www.cnblogs.com/DongYiMing/p/15155782.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!