這篇文章主要介紹Dapper如何支持存儲過程的,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
在Entity Framework中講解了EF如何支持存儲過程,同樣,Dapper也支持存儲過程,只需要在Query()方法的CommandType中標記使用的是存儲過程就可以了。在Users表上面創建如下的存儲過程:
CREATE proc sp_GetUserByUserName @UserName varchar(16) as begin select * FROM Users WHERE UserName=@UserName end GO
調用存儲過程的代碼如下:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Data.SqlClient; using System.Configuration; using System.Data; using Dapper; using DapperApplicationProcedure.Model; namespace DapperApplicationProcedure { class Program { static void Main(string[] args) { // 連接字符串 string conn = ConfigurationManager.ConnectionStrings["AppConnection"].ConnectionString; using (IDbConnection connection = new SqlConnection(conn)) { var query = connection.Query<User>("sp_GetUserByUserName", new { UserName = "風清揚" }, commandType: CommandType.StoredProcedure); // 輸出 query.AsList().ForEach(p => { Console.WriteLine("姓名:"+p.UserName+",郵箱:"+p.Email+",地址:"+p.Address); }); } Console.ReadKey(); } } }
運行過程:
注意:例子中只演示了使用一個參數的存儲過程,如果有多個參數使用方法也一樣。
示例代碼下載地址:點此下載
創建存儲過程如下:
CREATE proc procWithOutPara @num1 int, @num2 int, @sum int output as begin set @sum=@num1+@num2 end GO
dapper調用存儲過程代碼如下:
// 動態類型參數 DynamicParameters paras = new DynamicParameters(); paras.Add("@num1", 23); paras.Add("@num2", 45); paras.Add("@sum", 0, DbType.Int32, ParameterDirection.Output);// 指明是輸出參數,這里為指明參數類型大小 // 執行存儲過程 dbConnection.Execute("procWithOutPara", paras, commandType: CommandType.StoredProcedure); // 獲取輸出參數的值 int sum = paras.Get<int>("@sum");//68
以上是“Dapper如何支持存儲過程的”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。