您好,登錄后才能下訂單哦!
這篇“輕量級ORM框架Dapper應(yīng)用怎么返回多個結(jié)果集”文章的知識點大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“輕量級ORM框架Dapper應(yīng)用怎么返回多個結(jié)果集”文章吧。
使用Dapper的QueryMultiple方法可以一次執(zhí)行多條SQL語句,返回多個結(jié)果集,代碼如下
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Configuration; using Dapper; using System.Data; using System.Data.SqlClient; using DapperAppQueryMultiple.Model; namespace DapperAppQueryMultiple { class Program { static void Main(string[] args) { // 定義連接字符串 string conn = ConfigurationManager.ConnectionStrings["AppConnection"].ConnectionString; using (IDbConnection connection = new SqlConnection(conn)) { var sql = @"SELECT * FROM Users WHERE UserId=@UserId; SELECT * FROM Product WHERE ProductId=@ProductId"; var queryMulti = connection.QueryMultiple(sql, new { UserId = 1, ProductId=3 }); // 注意:Read獲取的時候必須是按照上面返回表的順序 比如上面先查詢的Users表,那么Read的時候必須先返回Users表,否則返回沒有數(shù)據(jù) var users = queryMulti.Read<User>(); var products = queryMulti.Read<Product>(); Console.WriteLine("*****產(chǎn)品信息*****"); // 循環(huán)遍歷輸出 products.AsList<Product>().ForEach(p => { Console.WriteLine("產(chǎn)品名稱:"+p.ProductName+" 價格:"+p.Price); }); Console.WriteLine("*****產(chǎn)品信息*****"); Console.WriteLine("*****用戶信息*****"); users.AsList<User>().ForEach(p => { Console.WriteLine("用戶姓名:"+p.UserName+" 郵箱:"+p.Email+" 地址:"+p.Address); }); Console.WriteLine("*****用戶信息*****"); } Console.ReadKey(); } } }
程序運行結(jié)果:
注意:Read獲取的時候必須是按照上面返回表的順序 比如上面先查詢的Users表,那么Read的時候必須先返回Users表,否則返回沒有數(shù)據(jù)。Read<T>里面的T泛型類不一定要和數(shù)據(jù)庫表名相同,上面代碼的T泛型類是User,數(shù)據(jù)庫表名是Users。
下面的代碼演示返回順序不同:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Configuration; using Dapper; using System.Data; using System.Data.SqlClient; using DapperAppQueryMultiple.Model; namespace DapperAppQueryMultiple { class Program { static void Main(string[] args) { // 定義連接字符串 string conn = ConfigurationManager.ConnectionStrings["AppConnection"].ConnectionString; using (IDbConnection connection = new SqlConnection(conn)) { var sql = @"SELECT * FROM Users WHERE UserId=@UserId; SELECT * FROM Product WHERE ProductId=@ProductId"; var queryMulti = connection.QueryMultiple(sql, new { UserId = 1, ProductId=3 }); // 先返回Product表的查詢數(shù)據(jù) var products = queryMulti.Read<Product>(); var users = queryMulti.Read<User>(); Console.WriteLine("*****產(chǎn)品信息*****"); // 循環(huán)遍歷輸出 products.AsList<Product>().ForEach(p => { Console.WriteLine("產(chǎn)品名稱:"+p.ProductName+" 價格:"+p.Price); }); Console.WriteLine("*****產(chǎn)品信息*****"); Console.WriteLine("*****用戶信息*****"); users.AsList<User>().ForEach(p => { Console.WriteLine("用戶姓名:"+p.UserName+" 郵箱:"+p.Email+" 地址:"+p.Address); }); Console.WriteLine("*****用戶信息*****"); } Console.ReadKey(); } } }
上面的代碼只是修改了返回表的數(shù)據(jù),程序運行結(jié)果如下:
以上就是關(guān)于“輕量級ORM框架Dapper應(yīng)用怎么返回多個結(jié)果集”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對大家有幫助,若想了解更多相關(guān)的知識內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(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)容。