輕量級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之前要打開連接,否則報錯:無效操作,連接已關(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);
}
}
}到此這篇關(guān)于Dapper支持操作函數(shù)和事物的文章就介紹到這了。希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
.NET?Core配置連接字符串和獲取數(shù)據(jù)庫上下文實例
這篇文章介紹了.NET?Core配置連接字符串和獲取數(shù)據(jù)庫上下文實例的方法,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-01-01
datagrid和repeader控件中替換標(biāo)識值的方法
本節(jié)主要介紹了datagrid和repeader控件中替換標(biāo)識值的方法,需要的朋友可以參考下2014-08-08
ASP.NET中Webservice安全 實現(xiàn)訪問權(quán)限控制
本文主要講解ASP.NET中的Webservice的安全設(shè)置兩種方法,一種基于soapheader,一種基于SoapExtensionAttribute,需要的朋友可以參考下。2016-05-05
ajaxToolkit:TextBoxWatermarkExtender演示與實現(xiàn)代碼
該控件的效果就是在TextBox控件上添加“水印”效果,也就是當(dāng)TextBox為空時,顯示提示消息,一旦TextBox聚焦,樣式就消失,看起來還挺不錯的嗎,感興趣的你可以了解下哦,希望本文對你有所幫助2013-01-01
asp.net生成高質(zhì)量縮略圖通用函數(shù)(c#代碼),支持多種生成方式
這兩天正在研究報表中餅圖的繪圖方法,文章中的某些做法值得參考.2008-08-08
asp.net 使用ObjectDataSource控件在ASP.NET中實現(xiàn)Ajax真分頁
ASP.NET 3.5中新增加的ListView控件是一個用于頁面數(shù)據(jù)綁定和界面布局的非常棒的控件,它在ASP.NET 2.0 GridView的基礎(chǔ)上做了很多改進,用戶在使用時可以控制的元素更多,開發(fā)時的靈活性更大了,個人覺得ListView在使用時比DataGrid和GirdView更加順手。2009-11-11
.net core日志系統(tǒng)相關(guān)總結(jié)
多年的經(jīng)驗,日志記錄是軟件開發(fā)的重要組成部分。沒有日志記錄機制的系統(tǒng)不是完善的系統(tǒng)。在開發(fā)階段可以通過debug附件進程進行交互調(diào)試,可以檢測到一些問題,但是在上線之后,日志的記錄起到至關(guān)重要的作用。本文講解下日志系統(tǒng)的相關(guān)使用2021-06-06
Win7安裝Visual Studio 2015失敗的解決方法
這篇文章主要為大家詳細介紹了Win7安裝Visual Studio 2015失敗的解決方案,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-03-03

