輕量級ORM框架Dapper應(yīng)用支持操作函數(shù)和事物
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之前要打開連接,否則報(bào)錯(cuò):無效操作,連接已關(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ù)默認(rèn)自動回滾 Console.WriteLine(ex.Message); } } }
到此這篇關(guān)于Dapper支持操作函數(shù)和事物的文章就介紹到這了。希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
一天精通asp.net的學(xué)習(xí)經(jīng)驗(yàn)小結(jié)
一天精通asp.net的學(xué)習(xí)經(jīng)驗(yàn)小結(jié)2010-02-02ASP.NET實(shí)現(xiàn)圖片以二進(jìn)制的形式存入數(shù)據(jù)庫
這篇文章主要介紹了ASP.NET實(shí)現(xiàn)圖片以二進(jìn)制的形式存入數(shù)據(jù)庫,有一定的學(xué)習(xí)借鑒價(jià)值,需要的朋友可以參考下2014-08-08ASP.NET 生成靜態(tài)頁面 實(shí)現(xiàn)思路
網(wǎng)上的cms系統(tǒng)好多都是支持生成靜態(tài)的,大家在使用過程中,也肯定遇到了很多的問題,下面就是一些實(shí)現(xiàn)的原理,其實(shí) asp,php,asp.net的原理都是差不多的。2009-06-06IIS處理Asp.net請求和Asp.net頁面生命周期說明
當(dāng)一個(gè)客戶端頁面訪問IIS試圖獲取一些信息的時(shí)候,發(fā)生了什么事情?一個(gè)請求在通過了HTTP管道后又發(fā)生了什么?本文主要是描述這兩個(gè)過程,即IIS處理asp.net請求和asp.net的頁面生命周期。歡迎大家積極拍磚,共同學(xué)習(xí),共同進(jìn)步。2011-05-05ASP.NET比較常用的26個(gè)性能優(yōu)化技巧
這篇文章主要給大家介紹asp.net中比較常用的26個(gè)性能優(yōu)化技巧,主要設(shè)計(jì)到asp.net中常用的26個(gè)性能優(yōu)化方面的內(nèi)容,對于asp.net中常用的26個(gè)性能優(yōu)化技巧感興趣的朋友可以參考下本篇文章2015-10-10ASP.NET 水晶報(bào)表打印功能實(shí)現(xiàn)代碼
ASP.NET下的水晶報(bào)表打印,據(jù)我所知有以下幾種辦法可以打印2008-11-11ASP.NET數(shù)據(jù)庫編程之Access連接失敗
ASP.NET數(shù)據(jù)庫編程之Access連接失敗...2006-09-09