轻量级ORM框架Dapper应用之Dapper支持存储过程

 更新时间:2022年03月07日 08:53:13   作者:.NET开发菜鸟  
这篇文章介绍了Dapper支持使用存储过程的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

在Entity Framework中讲解了EF如何支持存储过程,同样,Dapper也支持存储过程,只需要在Query()方法的CommandType中标记使用的是存储过程就可以了。在Users表上面创建如下的存储过程:

CREATE proc sp_GetUserByUserName
@UserName varchar(16)
as
begin
select * FROM Users WHERE UserName=@UserName
end
GO

调用存储过程的代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.SqlClient;
using System.Configuration;
using System.Data;
using Dapper;
using DapperApplicationProcedure.Model;

namespace DapperApplicationProcedure
{
    class Program
    {
        static void Main(string[] args)
        {
            // 连接字符串
            string conn = ConfigurationManager.ConnectionStrings["AppConnection"].ConnectionString;
            using (IDbConnection connection = new SqlConnection(conn))
            {
                var query = connection.Query<User>("sp_GetUserByUserName", new { UserName = "风清扬" }, commandType: CommandType.StoredProcedure);
                // 输出
                query.AsList().ForEach(p =>
                {
                    Console.WriteLine("姓名:"+p.UserName+",邮箱:"+p.Email+",地址:"+p.Address);
                });
            }

            Console.ReadKey();
        }
    }
}

运行过程:

注意:例子中只演示了使用一个参数的存储过程,如果有多个参数使用方法也一样。 

示例代码下载地址:点此下载

使用Execute执行带输出参数的存储过程

创建存储过程如下:

CREATE proc procWithOutPara
@num1 int,
@num2 int,
@sum int output
as
begin
  set @sum=@num1+@num2
end
GO

dapper调用存储过程代码如下:

// 动态类型参数
DynamicParameters paras = new DynamicParameters();
paras.Add("@num1", 23);
paras.Add("@num2", 45);
paras.Add("@sum", 0, DbType.Int32, ParameterDirection.Output);// 指明是输出参数,这里为指明参数类型大小
// 执行存储过程
dbConnection.Execute("procWithOutPara", paras, commandType: CommandType.StoredProcedure);
// 获取输出参数的值
int sum = paras.Get<int>("@sum");//68

到此这篇关于Dapper支持存储过程的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • .NET ORM框架SqlSugar实现导航查询功能

    .NET ORM框架SqlSugar实现导航查询功能

    今天这篇文章分享一款好用简单的ORM框架 SqlSugar,相比 EF Core的导航查询更加简单,配置更加容易,几分钟就能上手,对.NET ORM框架SqlSugar实现导航查询功能感兴趣的朋友一起看看吧
    2022-04-04
  • .net中自定义错误页面的实现升级篇

    .net中自定义错误页面的实现升级篇

    这篇文章主要给大家介绍了关于.net中自定义错误页面实现的相关资料,这篇文章是之前的升级篇,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-06-06
  • ASP.NET MVC5网站开发显示文章列表(九)

    ASP.NET MVC5网站开发显示文章列表(九)

    显示文章列表分两块,管理员可以显示全部文章列表,一般用户只显示自己的文章列表。文章列表的显示采用easyui-datagrid,后台需要与之对应的action返回json类型数据,感兴趣的小伙伴们可以参考一下
    2015-09-09
  • .Net实现上传图片按比例自动缩小或放大的方法

    .Net实现上传图片按比例自动缩小或放大的方法

    这篇文章主要介绍了.Net实现上传图片按比例自动缩小或放大的方法,实例内容简洁功能实用,需要的朋友可以参考下
    2014-09-09
  • asp.net和ajax实现智能搜索功能代码

    asp.net和ajax实现智能搜索功能代码

    近来一直在开发股票模拟系统,终于告一段落了,回想起来感慨很多。突然想应该做点总结了,想来想去还是觉得通过写点日志来把相关的知识点记录下来,下面就我在项目中经常用到的动态提示搜索选项功能的实现。
    2010-03-03
  • ASP.NET中控件的EnableViewState属性及彻底禁用

    ASP.NET中控件的EnableViewState属性及彻底禁用

    如果我们在开发Web应用程序时,某些控件是不需要接受用户的操作或只需要接受一次操作的时候,我们可以将这些控件的EnableViewState属性改为false,这样可以优化我们的程序,提高网络访问的速度。
    2016-06-06
  • asp.net Core3.0区域与路由配置的方法

    asp.net Core3.0区域与路由配置的方法

    这篇文章主要给大家介绍了关于asp.net Core3.0区域与路由配置的方法,文中通过示例代码介绍的非常详细,对大家学习或者使用asp.net Core3.0具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-05-05
  • Asp.Net Couchbase Memcached图文安装调用开发

    Asp.Net Couchbase Memcached图文安装调用开发

    本文主要是是如何安装CouchBase服务端,以及客户端如何进行调用。图文详解,大家参考吧
    2013-11-11
  • 关于.net(C#)中的跨进程访问的问题

    关于.net(C#)中的跨进程访问的问题

    C# 跨进程访问实现代码。
    2009-04-04
  • asp.net窗体的打开和关闭(输出js)

    asp.net窗体的打开和关闭(输出js)

    asp.net窗体的打开和关闭(输出js),需要的朋友可以参考下。
    2011-06-06

最新评论