使用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返回多个结果集相关推荐

  1. .NET轻量级ORM框架Dapper入门精通

    一.课程介绍 本次分享课程包含两个部分<.NET轻量级ORM框架Dapper修炼手册>和<.NET轻量级ORM框架Dapper葵花宝典>,阿笨将带领大家一起领略轻量级ORM框架 ...

  2. c# 轻量级ORM框架 实现(一)

    c# 轻量级ORM框架 实现(一) 2018年09月04日 14:11:02 IT哈 阅读数:1245 发布一个自己写的一个轻量级ORM框架,本框架设计期初基于三层架构.所以从命名上来看,了解三层的朋 ...

  3. 重磅开源:基于.NET 6.0 自研轻量级ORM框架

    Fast Framework 项目:https://gitee.com/China-Mr-zhong/Fast.Framework 一.前言 1.为了实现快速开发,省去编写大量Sql时间,更好的面向对 ...

  4. 轻量级ORM框架 【Dapper】 的使用

    ORM是什么? 从字面理解,O是Object,对象:R是Relation,关系:M是Mapping,映射.所以,用一句话概括就是:ORM是一种对象关系映射的技术. Dapper 是.NET下的一种OR ...

  5. bltoolkit mysql_.NET 轻量级 ORM 框架 - Dapper 介绍

    转自:https://blog.csdn.net/hanjun0612/article/details/52170204 Dapper简单介绍: Dapper is a single file you ...

  6. dapperpoco mysql_Dapper一个和petapoco差不多的轻量级ORM框架

    我们都知道ORM全称叫做Object Relationship Mapper,也就是可以用object来map我们的db,而且市面上的orm框架有很多,其中有一个框架 叫做dapper,而且被称为th ...

  7. 轻量级ORM框架 Bankinate

    [前言] 前面讲过ORM的前世今生,对ORM框架不了解的朋友可以参考博文:https://www.cnblogs.com/7tiny/p/9551754.html 今天,我们主要通过设计一款轻量级的O ...

  8. Python轻量级ORM框架——peewee

    这里写目录标题 Python中常用的ORM框架 peewee使用经验 从数据库中导出模型 查询 统计类查询 优化子查询 参考文章 Python中常用的ORM框架 SQLALchemy:重量级框架,适合 ...

  9. 轻量级orm框架——gzero指南

    Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/cou ...

最新文章

  1. 第十六届全国大学生智能车汽车竞赛第二次扩大会议
  2. python discuz_python实现的登陆Discuz!论坛通用代码分享
  3. mysql 1005_MYSQL使用错误 MYSQL中ERROR 1005
  4. 在Python中使用OpenCV(CV2)对图像进行边缘检测
  5. C语言 scanf()和gets()函数的区别
  6. Bootstrap CSS 编码规范之Less 和 Sass 中的操作符
  7. 【clickhouse】clickhouse 如何实现tcp方式发送数据
  8. 偶然发现的Unity3d,两点之间的距离计算。
  9. java 字符串索引从0开始_无限字符串中的字符串的第一个索引-Java
  10. 视频特效制作After Effects 2022 for Mac
  11. 线索二叉树(Binary Thread Tree)
  12. 拖延2年的Bug,Linux 上的三星 SSD 驱动错误终于得到修复
  13. sequence生成器写法
  14. Keil C51 V6.12
  15. Incorporating visual features into word embeddings:A bimodal autoencoder-based approach
  16. mysql设置值班表_简单的员工轮换值班表
  17. 你不再需要动态网页——编辑-发布-开发分离
  18. DevOps 面试小宝典:总有一个你会用到
  19. 如何在html中引入一个仪表盘,仪表盘.html · 一头大水牛/前端每日总结,积累点滴! - Gitee.com...
  20. 基于Java的课程管理系统

热门文章

  1. 创建android工程时Install Dependencies(安装依赖)提示
  2. android Math的使用
  3. android listview左滑删除
  4. apk的签名文件(两次Hash+加密)
  5. Oracle设置权限和还原数据库
  6. 【算法微解读】浅谈线段树
  7. WebJars——web端静态资源的jar包
  8. Shell--cut用法
  9. [SecureCRT]通过SFTP方式上传本地文件到服务器
  10. Appirater -- app中提示用户为app评价的提示框