阅读量:0
在.NET Core中,你可以使用ADO.NET或者Entity Framework Core来执行存储过程
- 使用ADO.NET执行存储过程:
首先,确保已经安装了System.Data.SqlClient包。然后,按照以下步骤操作:
using System; using System.Data; using System.Data.SqlClient; namespace ConsoleApp { class Program { static void Main(string[] args) { string connectionString = "your_connection_string"; using (SqlConnection connection = new SqlConnection(connectionString)) { connection.Open(); using (SqlCommand command = new SqlCommand("your_stored_procedure_name", connection)) { command.CommandType = CommandType.StoredProcedure; // 添加参数 command.Parameters.AddWithValue("@param1", "value1"); command.Parameters.AddWithValue("@param2", "value2"); // 执行存储过程 using (SqlDataReader reader = command.ExecuteReader()) { while (reader.Read()) { // 处理结果集 Console.WriteLine($"Column1: {reader["Column1"]}, Column2: {reader["Column2"]}"); } } } } } } }
- 使用Entity Framework Core执行存储过程:
首先,确保已经安装了Microsoft.EntityFrameworkCore和Microsoft.EntityFrameworkCore.SqlServer包。然后,按照以下步骤操作:
a. 在DbContext类中添加一个DbSet属性,用于表示存储过程返回的实体类型:
public DbSet<YourEntity> YourEntities { get; set; }
b. 在DbContext类中添加一个方法,用于执行存储过程:
public async Task<List<YourEntity>> ExecuteStoredProcedureAsync(string storedProcedureName, params SqlParameter[] parameters) { var result = await YourEntities .FromSqlRaw($"EXEC {storedProcedureName} @param1, @param2", parameters) .ToListAsync(); return result; }
c. 在需要执行存储过程的地方调用这个方法:
using System.Threading.Tasks; using Microsoft.Data.SqlClient; // ... string storedProcedureName = "your_stored_procedure_name"; var param1 = new SqlParameter("@param1", "value1"); var param2 = new SqlParameter("@param2", "value2"); var result = await _context.ExecuteStoredProcedureAsync(storedProcedureName, param1, param2);
这样,你就可以在.NET Core中使用存储过程了。注意根据实际情况修改代码中的连接字符串、存储过程名称、参数等。