輕量級(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表,否則返回沒有數(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表,否則返回沒有數(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)文章
從別人那拷下來(lái)的幾點(diǎn)Session使用的經(jīng)驗(yàn)
從別人那拷下來(lái)的幾點(diǎn)Session使用的經(jīng)驗(yàn)...2007-04-04
asp.net防止刷新時(shí)重復(fù)提交(可禁用工具條刷新按鈕)
前段時(shí)間遇到了需要禁用刷新的需求,f5按鈕就不說(shuō)了,簡(jiǎn)單的js就能把它禁用,但是工具條上的刷新按鈕卻防止不了啊,不過(guò)本文介紹的一種方法卻可以解決此問(wèn)題,感興趣的朋友可以了解下啊,希望本文對(duì)你有所幫助2013-01-01
asp.net 點(diǎn)縮略圖彈出隨圖片大小自動(dòng)調(diào)整的頁(yè)面
程序用asp.net編寫,功能主要是,點(diǎn)pic_small.Aspx頁(yè)面的縮略圖后彈出pic_all.aspx頁(yè)面,pic_all.aspx頁(yè)面的大小要根據(jù)圖片大小自動(dòng)調(diào)整2009-06-06
.NET Core使用HttpClient進(jìn)行表單提交時(shí)遇到的問(wèn)題
這篇文章主要介紹了.NET Core使用HttpClient進(jìn)行表單提交時(shí)遇到的問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12
asp.net 讀取并修改config文件實(shí)現(xiàn)代碼
讀取并修改 config 文件的asp.net代碼,方便我們用asp.net修改配置文件。2009-11-11
利用Builder方式創(chuàng)建對(duì)象示例代碼
這篇文章主要給大家介紹了關(guān)于利用Builder方式創(chuàng)建對(duì)象的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-11-11
ASP.NET使用gridview獲取當(dāng)前行的索引值
這篇文章主要介紹了ASP.NET使用gridview獲取當(dāng)前行的索引值的方法匯總,有需要的小伙伴可以參考下。2015-06-06

