使用Dapper调用存储过程需设置commandType: CommandType.StoredProcedure,通过匿名对象或DynamicParameters传递参数;2. 输出参数和返回值需用DynamicParameters定义并获取;3. 多结果集使用QueryMultipleAsync读取。确保连接有效、存储过程存在及参数配置正确。

在C#中使用Dapper调用存储过程非常简单。你只需要通过 IDbConnection 接口执行查询,并设置 CommandType.StoredProcedure,Dapper 就会以存储过程方式执行命令。
1. 基本语法和参数传递
Dapper 使用 DynamicParameters 或匿名对象传参,推荐使用后者简化代码。
using (var connection = new SqlConnection(connectionString)){ var parameters = new { UserId = 1, Status = "Active" }; var result = await connection.QueryAsync( "sp_GetUsersByStatus", parameters, commandType: CommandType.StoredProcedure);}
2. 输出参数和返回值处理
当存储过程包含输出参数或返回值时,使用 DynamicParameters 来接收。
using (var connection = new SqlConnection(connectionString)){ var dynamicParams = new DynamicParameters(); dynamicParams.Add("@UserId", 1); dynamicParams.Add("@UserName", dbType: DbType.String, size: 50, direction: ParameterDirection.Output); dynamicParams.Add("@ReturnCode", dbType: DbType.Int32, direction: ParameterDirection.ReturnValue); await connection.ExecuteAsync( "sp_GetUserName", dynamicParams, commandType: CommandType.StoredProcedure); string userName = dynamicParams.Get("@UserName"); int returnCode = dynamicParams.Get("@ReturnCode");}
3. 多结果集处理(Multiple Result Sets)
如果存储过程返回多个结果集,使用 QueryMultipleAsync。
using (var connection = new SqlConnection(connectionString)){ using (var multi = await connection.QueryMultipleAsync( "sp_GetUserAndOrders", new { UserId = 1 }, commandType: CommandType.StoredProcedure)) { var users = multi.Read().ToList(); var orders = multi.Read().ToList(); }}
基本上就这些。只要确保连接字符串正确、存储过程存在,并使用 commandType: CommandType.StoredProcedure,Dapper 就能正确调用。不复杂但容易忽略细节比如参数方向或类型映射。
以上就是C#中如何使用Dapper的存储过程支持?示例代码是什么?的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1440885.html
微信扫一扫
支付宝扫一扫