輕量級(jí)ORM框架Dapper應(yīng)用之返回多個(gè)結(jié)果集
使用Dapper的QueryMultiple方法可以一次執(zhí)行多條SQL語(yǔ)句,返回多個(gè)結(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獲取的時(shí)候必須是按照上面返回表的順序 比如上面先查詢的Users表,那么Read的時(shí)候必須先返回Users表,否則返回沒(méi)有數(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+" 價(jià)格:"+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(); } } }
程序運(yùn)行結(jié)果:
注意:Read獲取的時(shí)候必須是按照上面返回表的順序 比如上面先查詢的Users表,那么Read的時(shí)候必須先返回Users表,否則返回沒(méi)有數(shù)據(jù)。Read<T>里面的T泛型類不一定要和數(shù)據(jù)庫(kù)表名相同,上面代碼的T泛型類是User,數(shù)據(jù)庫(kù)表名是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+" 價(jià)格:"+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ù),程序運(yùn)行結(jié)果如下:
示例代碼下載地址:點(diǎn)此下載
到此這篇關(guān)于使用Dapper返回多個(gè)結(jié)果集的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 輕量級(jí)ORM框架Dapper應(yīng)用支持操作函數(shù)和事物
- 輕量級(jí)ORM框架Dapper應(yīng)用之Dapper支持存儲(chǔ)過(guò)程
- 輕量級(jí)ORM框架Dapper應(yīng)用之實(shí)現(xiàn)Join操作
- 輕量級(jí)ORM框架Dapper應(yīng)用之實(shí)現(xiàn)In操作
- 輕量級(jí)ORM框架Dapper應(yīng)用之實(shí)現(xiàn)CURD操作
- 輕量級(jí)ORM框架Dapper應(yīng)用之安裝Dapper
- ORM框架之Dapper簡(jiǎn)介和性能測(cè)試
- 輕量級(jí)ORM框架Dapper應(yīng)用之實(shí)現(xiàn)DTO
相關(guān)文章
.net平臺(tái)的rabbitmq使用封裝demo詳解
這篇文章主要針對(duì)rabbitmq學(xué)習(xí)后封裝RabbitMQ.Client的一個(gè)分享,文章最后,我會(huì)把封裝組件和demo奉上,對(duì).net平臺(tái)的rabbitmq使用封裝相關(guān)知識(shí)感興趣的朋友一起看看吧2021-09-09.NET Core中RabbitMQ使用死信隊(duì)列的實(shí)現(xiàn)
本文主要介紹了.NET Core中RabbitMQ使用死信隊(duì)列的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-04-04Equals和==的區(qū)別 公共變量和屬性的區(qū)別小結(jié)
Equals 和==的區(qū)別 公共變量和屬性的區(qū)別 總結(jié)一下。2009-11-11Asp.net Socket客戶端(遠(yuǎn)程發(fā)送和接收數(shù)據(jù))
通過(guò)Socket遠(yuǎn)程發(fā)送與接收數(shù)據(jù)的代碼類2008-11-11Asp.Net使用服務(wù)器控件Image/ImageButton顯示本地圖片的方法
Image/ImageButton服務(wù)器控件顯示本地的圖片,實(shí)現(xiàn)思路是數(shù)據(jù)庫(kù)中存放了圖片的相對(duì)地址,讀取數(shù)據(jù)庫(kù)中的地址,用控件加載顯示圖片。具體實(shí)現(xiàn)步驟大家參考下本文2017-08-08