C#的Dapper如何调用存储过程
时间: 2023-12-05 22:03:42 浏览: 39
使用Dapper调用存储过程可以通过以下步骤实现:
1. 创建一个存储过程
首先,需要在数据库中创建一个存储过程。例如,创建一个名为“GetUsers”的存储过程,该存储过程返回用户表中的所有用户记录。以下是创建该存储过程的示例SQL语句:
CREATE PROCEDURE GetUsers
AS
BEGIN
SELECT * FROM Users
END
2. 定义一个模型类
定义一个模型类,该类的属性与存储过程返回的结果集中的列相对应。例如,在这个例子中,我们可以定义一个名为“User”的类,该类包含用户表中的所有列:
public class User
{
public int UserId { get; set; }
public string UserName { get; set; }
public string Email { get; set; }
public string Password { get; set; }
}
3. 调用存储过程
使用Dapper调用存储过程可以通过以下代码实现:
using (var connection = new SqlConnection("connectionString"))
{
var users = connection.Query<User>("GetUsers", commandType: CommandType.StoredProcedure);
}
在上面的代码中,我们首先创建一个SqlConnection对象,该对象表示与数据库的连接。然后,我们调用Query方法,该方法使用存储过程名称作为第一个参数,并使用commandType参数指定命令类型为StoredProcedure。Query方法返回一个IEnumerable<User>对象,该对象包含存储过程返回的所有用户记录。
注意:在调用存储过程时,可以将参数传递给存储过程。可以使用匿名类型或DynamicParameters对象来传递参数。例如:
var parameters = new DynamicParameters();
parameters.Add("@UserId", 1);
var user = connection.QueryFirstOrDefault<User>("GetUserById", parameters, commandType: CommandType.StoredProcedure);
在上面的代码中,我们首先创建一个DynamicParameters对象,并使用Add方法向该对象添加一个名为“UserId”的参数。然后,我们调用QueryFirstOrDefault方法,该方法使用存储过程名称作为第一个参数,DynamicParameters对象作为第二个参数,并使用commandType参数指定命令类型为StoredProcedure。QueryFirstOrDefault方法返回一个User对象,该对象包含存储过程返回的第一个用户记录。