溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么用Dapper

發(fā)布時間:2022-03-09 09:13:08 來源:億速云 閱讀:140 作者:iii 欄目:開發(fā)技術(shù)

本文小編為大家詳細介紹“怎么用Dapper”,內(nèi)容詳細,步驟清晰,細節(jié)處理妥當,希望這篇“怎么用Dapper”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學(xué)習新知識吧。

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

dapper操作函數(shù)的代碼如下:

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

namespace DapperDemo
{
    public static class OperFunction
    {
        /// <summary>
        /// Dapper滴調(diào)用函數(shù)
        /// </summary>
        public static void ExecuteFunction()
        {
            // 連接字符串
            string strCon = ConfigurationManager.ConnectionStrings["DbConnection"].ConnectionString;
            // connection對象
            IDbConnection dbConnection = new SqlConnection(strCon);
            // 定義參數(shù)
            DynamicParameters paras = new DynamicParameters();
            paras.Add("@num1", 34);
            paras.Add("@num2", 456);
            // 返回值
            paras.Add("@sum", 0, DbType.Int32, ParameterDirection.ReturnValue);
            string functionName = "fun_test";
            // 執(zhí)行
            int count = dbConnection.Execute(functionName, paras, null, null, CommandType.StoredProcedure);
            // 獲取輸出參數(shù)的值
            int sum = paras.Get<int>("@sum");
            Console.WriteLine("sum:" + sum);//輸出390
        }
    }
}

dapper支持事物的代碼如下:

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

namespace DapperDemo
{
    public static class OperTransaction
    {
        /// <summary>
        /// Dapper支持事物
        /// </summary>
        public static void ExecuteTransaction()
        {
            // 連接字符串
            string strCon = ConfigurationManager.ConnectionStrings["DbConnection"].ConnectionString;
            // connection對象
            IDbConnection dbConnection = new SqlConnection(strCon);
            string strSQL = "DELETE FROM Student WHERE StudentID=@StudentID";
            DynamicParameters paras = new DynamicParameters();
            paras.Add("@StudentID", 3);
            // 在BeginTransaction之前要打開連接,否則報錯:無效操作,連接已關(guān)閉
            dbConnection.Open();
            // 開啟事物
            IDbTransaction transaction = dbConnection.BeginTransaction();
            try
            {
                dbConnection.Execute(strSQL, paras, transaction: transaction);
                // 提交事務(wù)
                transaction.Commit();
            }
            catch (Exception ex)
            {
                // 回滾事物
                transaction.Rollback();
            }
        }
    }
}

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

public static void ExecuteTransactionScope()
{
      using (var transactionscope = new TransactionScope(TransactionScopeOption.Required))
      {
            // 連接字符串
            string strCon = ConfigurationManager.ConnectionStrings["DbConnection"].ConnectionString;
            // connection對象
            IDbConnection dbConnection = new SqlConnection(strCon);
            string strSQL = "DELETE FROM Student WHERE StudentID=@StudentID";
            DynamicParameters paras = new DynamicParameters();
            paras.Add("@StudentID", 6);
            dbConnection.Open();
            try
            {
                dbConnection.Execute(strSQL, paras);
                transactionscope.Complete();
            }
            catch (Exception ex)
            {
                // 不提交事務(wù)默認自動回滾
                Console.WriteLine(ex.Message);
            }
      }
}

讀到這里,這篇“怎么用Dapper”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領(lǐng)會,如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI