dapper支持操作函數和事物


dapper除了支持基礎的CURD、存儲過程以外,還支持操作函數和事物。

dapper操作函數的代碼如下:

 1 using Dapper;
 2 using System;
 3 using System.Collections.Generic;
 4 using System.Configuration;
 5 using System.Data;
 6 using System.Data.SqlClient;
 7 using System.Linq;
 8 using System.Text;
 9 using System.Threading.Tasks;
10 
11 namespace DapperDemo
12 {
13     public static class OperFunction
14     {
15         /// <summary>
16         /// Dapper滴調用函數
17         /// </summary>
18         public static void ExecuteFunction()
19         {
20             // 連接字符串
21             string strCon = ConfigurationManager.ConnectionStrings["DbConnection"].ConnectionString;
22             // connection對象
23             IDbConnection dbConnection = new SqlConnection(strCon);
24             // 定義參數
25             DynamicParameters paras = new DynamicParameters();
26             paras.Add("@num1", 34);
27             paras.Add("@num2", 456);
28             // 返回值
29             paras.Add("@sum", 0, DbType.Int32, ParameterDirection.ReturnValue);
30             string functionName = "fun_test";
31             // 執行
32             int count = dbConnection.Execute(functionName, paras, null, null, CommandType.StoredProcedure);
33             // 獲取輸出參數的值
34             int sum = paras.Get<int>("@sum");
35             Console.WriteLine("sum:" + sum);//輸出390
36         }
37     }
38 }

 dapper支持事物的代碼如下:

 1 using Dapper;
 2 using System;
 3 using System.Collections.Generic;
 4 using System.Configuration;
 5 using System.Data;
 6 using System.Data.SqlClient;
 7 using System.Linq;
 8 using System.Text;
 9 using System.Threading.Tasks;
10 
11 namespace DapperDemo
12 {
13     public static class OperTransaction
14     {
15         /// <summary>
16         /// Dapper支持事物
17         /// </summary>
18         public static void ExecuteTransaction()
19         {
20             // 連接字符串
21             string strCon = ConfigurationManager.ConnectionStrings["DbConnection"].ConnectionString;
22             // connection對象
23             IDbConnection dbConnection = new SqlConnection(strCon);
24             string strSQL = "DELETE FROM Student WHERE StudentID=@StudentID";
25             DynamicParameters paras = new DynamicParameters();
26             paras.Add("@StudentID", 3);
27             // 在BeginTransaction之前要打開連接,否則報錯:無效操作,連接已關閉
28             dbConnection.Open();
29             // 開啟事物
30             IDbTransaction transaction = dbConnection.BeginTransaction();
31             try
32             {
33                 dbConnection.Execute(strSQL, paras, transaction: transaction);
34                 // 提交事務
35                 transaction.Commit();
36             }
37             catch (Exception ex)
38             {
39                 // 回滾事物
40                 transaction.Rollback();
41             }
42         }
43     }
44 }

 Dapper除了支持Transaction以外,還支持Transactionscope:

 1 public static void ExecuteTransactionScope()
 2 {
 3       using (var transactionscope = new TransactionScope(TransactionScopeOption.Required))
 4       {
 5             // 連接字符串
 6             string strCon = ConfigurationManager.ConnectionStrings["DbConnection"].ConnectionString;
 7             // connection對象
 8             IDbConnection dbConnection = new SqlConnection(strCon);
 9             string strSQL = "DELETE FROM Student WHERE StudentID=@StudentID";
10             DynamicParameters paras = new DynamicParameters();
11             paras.Add("@StudentID", 6);
12             dbConnection.Open();
13             try
14             {
15                 dbConnection.Execute(strSQL, paras);
16                 transactionscope.Complete();
17             }
18             catch (Exception ex)
19             {
20                 // 不提交事務默認自動回滾
21                 Console.WriteLine(ex.Message);
22             }
23       }               
24 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM