iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > ASP.NET >轻量级ORM框架Dapper应用之返回多个结果集
  • 831
分享到

轻量级ORM框架Dapper应用之返回多个结果集

2024-04-02 19:04:59 831人浏览 独家记忆
摘要

使用Dapper的QueryMultiple方法可以一次执行多条sql语句,返回多个结果集,代码如下 using System; using System.Collections.G

使用Dapper的QueryMultiple方法可以一次执行多条sql语句,返回多个结果集,代码如下

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表,否则返回没有数据
                var users = queryMulti.Read<User>();
                var products = queryMulti.Read<Product>();
                Console.WriteLine("*****产品信息*****");
                // 循环遍历输出
                products.AsList<Product>().ForEach(p =>
                {
                    Console.WriteLine("产品名称:"+p.ProductName+" 价格:"+p.Price);
                });
                Console.WriteLine("*****产品信息*****");

                Console.WriteLine("*****用户信息*****");
                users.AsList<User>().ForEach(p => {
                    Console.WriteLine("用户姓名:"+p.UserName+" 邮箱:"+p.Email+" 地址:"+p.Address);
                });
                Console.WriteLine("*****用户信息*****");
            }


            Console.ReadKey();

        }
    }
}

程序运行结果:

注意:Read获取的时候必须是按照上面返回表的顺序 比如上面先查询的Users表,那么Read的时候必须先返回Users表,否则返回没有数据。Read<T>里面的T泛型类不一定要和数据库表名相同,上面代码的T泛型类是User,数据库表名是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表的查询数据
                var products = queryMulti.Read<Product>();
                var users = queryMulti.Read<User>();

                Console.WriteLine("*****产品信息*****");
                // 循环遍历输出
                products.AsList<Product>().ForEach(p =>
                {
                    Console.WriteLine("产品名称:"+p.ProductName+" 价格:"+p.Price);
                });
                Console.WriteLine("*****产品信息*****");

                Console.WriteLine("*****用户信息*****");
                users.AsList<User>().ForEach(p => {
                    Console.WriteLine("用户姓名:"+p.UserName+" 邮箱:"+p.Email+" 地址:"+p.Address);
                });
                Console.WriteLine("*****用户信息*****");
            }


            Console.ReadKey();

        }
    }
}

上面的代码只是修改了返回表的数据,程序运行结果如下:

示例代码下载地址:点此下载

到此这篇关于使用Dapper返回多个结果集的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: 轻量级ORM框架Dapper应用之返回多个结果集

本文链接: https://www.lsjlt.com/news/141431.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 轻量级ORM框架Dapper应用之返回多个结果集
    使用Dapper的QueryMultiple方法可以一次执行多条SQL语句,返回多个结果集,代码如下 using System; using System.Collections.G...
    99+
    2022-11-13
  • 轻量级ORM框架Dapper应用怎么返回多个结果集
    这篇“轻量级ORM框架Dapper应用怎么返回多个结果集”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“轻量级ORM框架Dap...
    99+
    2023-06-29
  • 轻量级ORM框架Dapper应用之安装Dapper
    一、Dapper简介 Dapper是一款轻量级ORM框架,为解决网站访问流量极高而产生的性能问题而构造,主要通过执行TSQL表达式而实现数据库的CQRS。 如果你在项目中遇到性能访问...
    99+
    2022-11-13
  • 轻量级ORM框架Dapper应用之实现DTO
    一、什么是DTO 先来看看百度百科的解释: 数据传输对象(DTO)(Data Transfer Object),是一种设计模式之间传输数据的软件应用系统。数据传输目标往往是数据访问对...
    99+
    2022-11-13
  • 轻量级ORM框架Dapper应用之Dapper支持存储过程
    在Entity Framework中讲解了EF如何支持存储过程,同样,Dapper也支持存储过程,只需要在Query()方法的CommandType中标记使用的是存储过程就可以了。在...
    99+
    2022-11-13
  • 轻量级ORM框架Dapper应用之实现In操作
    IN 操作符允许我们在 WHERE 子句中规定多个值。 本篇文章中,还是使用和上篇文章中同样的实体类和数据库,Dapper使用in操作符的代码如下: using System...
    99+
    2022-11-13
  • 轻量级ORM框架Dapper应用之实现CURD操作
    在上一篇文章中,讲解了如何安装Dapper,这篇文章中将会讲解如何使用Dapper使用CURD操作。 例子中使用到的实体类定义如下: using System; using Syst...
    99+
    2022-11-13
  • 轻量级ORM框架Dapper应用之实现Join操作
    在这篇文章中,讲解如何使用Dapper使用Inner join的操作 1、新创建两张表:Users表和Product表 Users表定义如下: CREATE TABLE [dbo]....
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作