轻量级ORM框架Dapper应用四:使用Dapper返回多个结果集
使用Dapper的QueryMultiple方法可以一次执行多条SQL语句,返回多个结果集,代码如下
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 using System.Configuration; 7 using Dapper; 8 using System.Data; 9 using System.Data.SqlClient; 10 using DapperAppQueryMultiple.Model; 11 12 namespace DapperAppQueryMultiple 13 { 14 class Program 15 { 16 static void Main(string[] args) 17 { 18 // 定义连接字符串 19 string conn = ConfigurationManager.ConnectionStrings["AppConnection"].ConnectionString; 20 using (IDbConnection connection = new SqlConnection(conn)) 21 { 22 var sql = @"SELECT * FROM Users WHERE UserId=@UserId; 23 SELECT * FROM Product WHERE ProductId=@ProductId"; 24 var queryMulti = connection.QueryMultiple(sql, new { UserId = 1, ProductId=3 }); 25 26 // 注意:Read获取的时候必须是按照上面返回表的顺序 比如上面先查询的Users表,那么Read的时候必须先返回Users表,否则返回没有数据 27 var users = queryMulti.Read<User>(); 28 var products = queryMulti.Read<Product>(); 29 Console.WriteLine("*****产品信息*****"); 30 // 循环遍历输出 31 products.AsList<Product>().ForEach(p => 32 { 33 Console.WriteLine("产品名称:"+p.ProductName+" 价格:"+p.Price); 34 }); 35 Console.WriteLine("*****产品信息*****"); 36 37 Console.WriteLine("*****用户信息*****"); 38 users.AsList<User>().ForEach(p => { 39 Console.WriteLine("用户姓名:"+p.UserName+" 邮箱:"+p.Email+" 地址:"+p.Address); 40 }); 41 Console.WriteLine("*****用户信息*****"); 42 } 43 44 45 Console.ReadKey(); 46 47 } 48 } 49 }
程序运行结果:
注意:Read获取的时候必须是按照上面返回表的顺序 比如上面先查询的Users表,那么Read的时候必须先返回Users表,否则返回没有数据。Read<T>里面的T泛型类不一定要和数据库表名相同,上面代码的T泛型类是User,数据库表名是Users。
下面的代码演示返回顺序不同:
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 using System.Configuration; 7 using Dapper; 8 using System.Data; 9 using System.Data.SqlClient; 10 using DapperAppQueryMultiple.Model; 11 12 namespace DapperAppQueryMultiple 13 { 14 class Program 15 { 16 static void Main(string[] args) 17 { 18 // 定义连接字符串 19 string conn = ConfigurationManager.ConnectionStrings["AppConnection"].ConnectionString; 20 using (IDbConnection connection = new SqlConnection(conn)) 21 { 22 var sql = @"SELECT * FROM Users WHERE UserId=@UserId; 23 SELECT * FROM Product WHERE ProductId=@ProductId"; 24 var queryMulti = connection.QueryMultiple(sql, new { UserId = 1, ProductId=3 }); 25 26 // 先返回Product表的查询数据 27 var products = queryMulti.Read<Product>(); 28 var users = queryMulti.Read<User>(); 29 30 Console.WriteLine("*****产品信息*****"); 31 // 循环遍历输出 32 products.AsList<Product>().ForEach(p => 33 { 34 Console.WriteLine("产品名称:"+p.ProductName+" 价格:"+p.Price); 35 }); 36 Console.WriteLine("*****产品信息*****"); 37 38 Console.WriteLine("*****用户信息*****"); 39 users.AsList<User>().ForEach(p => { 40 Console.WriteLine("用户姓名:"+p.UserName+" 邮箱:"+p.Email+" 地址:"+p.Address); 41 }); 42 Console.WriteLine("*****用户信息*****"); 43 } 44 45 46 Console.ReadKey(); 47 48 } 49 } 50 }
上面的代码只是修改了返回表的数据,程序运行结果如下:
示例代码下载地址:https://pan.baidu.com/s/1hserGTu
轻量级ORM框架Dapper应用四:使用Dapper返回多个结果集相关推荐
- .NET轻量级ORM框架Dapper入门精通
一.课程介绍 本次分享课程包含两个部分<.NET轻量级ORM框架Dapper修炼手册>和<.NET轻量级ORM框架Dapper葵花宝典>,阿笨将带领大家一起领略轻量级ORM框架 ...
- c# 轻量级ORM框架 实现(一)
c# 轻量级ORM框架 实现(一) 2018年09月04日 14:11:02 IT哈 阅读数:1245 发布一个自己写的一个轻量级ORM框架,本框架设计期初基于三层架构.所以从命名上来看,了解三层的朋 ...
- 重磅开源:基于.NET 6.0 自研轻量级ORM框架
Fast Framework 项目:https://gitee.com/China-Mr-zhong/Fast.Framework 一.前言 1.为了实现快速开发,省去编写大量Sql时间,更好的面向对 ...
- 轻量级ORM框架 【Dapper】 的使用
ORM是什么? 从字面理解,O是Object,对象:R是Relation,关系:M是Mapping,映射.所以,用一句话概括就是:ORM是一种对象关系映射的技术. Dapper 是.NET下的一种OR ...
- bltoolkit mysql_.NET 轻量级 ORM 框架 - Dapper 介绍
转自:https://blog.csdn.net/hanjun0612/article/details/52170204 Dapper简单介绍: Dapper is a single file you ...
- dapperpoco mysql_Dapper一个和petapoco差不多的轻量级ORM框架
我们都知道ORM全称叫做Object Relationship Mapper,也就是可以用object来map我们的db,而且市面上的orm框架有很多,其中有一个框架 叫做dapper,而且被称为th ...
- 轻量级ORM框架 Bankinate
[前言] 前面讲过ORM的前世今生,对ORM框架不了解的朋友可以参考博文:https://www.cnblogs.com/7tiny/p/9551754.html 今天,我们主要通过设计一款轻量级的O ...
- Python轻量级ORM框架——peewee
这里写目录标题 Python中常用的ORM框架 peewee使用经验 从数据库中导出模型 查询 统计类查询 优化子查询 参考文章 Python中常用的ORM框架 SQLALchemy:重量级框架,适合 ...
- 轻量级orm框架——gzero指南
Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/cou ...
最新文章
- 第十六届全国大学生智能车汽车竞赛第二次扩大会议
- python discuz_python实现的登陆Discuz!论坛通用代码分享
- mysql 1005_MYSQL使用错误 MYSQL中ERROR 1005
- 在Python中使用OpenCV(CV2)对图像进行边缘检测
- C语言 scanf()和gets()函数的区别
- Bootstrap CSS 编码规范之Less 和 Sass 中的操作符
- 【clickhouse】clickhouse 如何实现tcp方式发送数据
- 偶然发现的Unity3d,两点之间的距离计算。
- java 字符串索引从0开始_无限字符串中的字符串的第一个索引-Java
- 视频特效制作After Effects 2022 for Mac
- 线索二叉树(Binary Thread Tree)
- 拖延2年的Bug,Linux 上的三星 SSD 驱动错误终于得到修复
- sequence生成器写法
- Keil C51 V6.12
- Incorporating visual features into word embeddings:A bimodal autoencoder-based approach
- mysql设置值班表_简单的员工轮换值班表
- 你不再需要动态网页——编辑-发布-开发分离
- DevOps 面试小宝典:总有一个你会用到
- 如何在html中引入一个仪表盘,仪表盘.html · 一头大水牛/前端每日总结,积累点滴! - Gitee.com...
- 基于Java的课程管理系统