栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Dapper处理多个结果集与多重映射实例

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Dapper处理多个结果集与多重映射实例

Dapper处理多个结果集与多重映射实例
  • 一、 不相关实体
  • 二、1至多个关系的相关实体
    • 1.恒星类
    • 2.行星类
    • 3.数据库数据
    • 4.使用Dapper进行多结果集操作
    • 5.查询结果

开始研究如何做到这一点之前,让我们首先试着理解在我们的应用程序中可能希望做到这一点的场景:

  1. 查询无关实体:所请求的实体根本不相关。
  2. 查询具有1至多个关系的相关实体:被请求的实体具有1对多的关系,我们需要在代码中处理多个结果集
  3. 查询具有1至1关系的相关实体:被请求的实体具有1-1关系

我们需要在代码中执行处理多个映射 :

  1. 在第一个场景中,我们有完全不相关的实体,因此》基本上,我们只想执行两个独立的查询来检索数据,然后将其映射到这些实体。
  2. 在第二个场景中,返回的实体与1-多相关,因此我们希望检索数据,然后将结果映射到具有1至多个关系的poco中。
  3. 所有这些都可以通过dapper的查询、querymultiple和read方法进行归档。现在让我们把重点放在如何在代码中执行这些操作。
一、 不相关实体

数据库表

查询结果

二、1至多个关系的相关实体

一个恒星对应多个行星

1.恒星类
  public class FixedStar
    { 
        public long Id { get; set; }
        public int Fid { get; set; }
        public string Name { get; set; }
        public List Planet { get; set; } = new List();
    }
2.行星类
  public class Planet
    {
        public long Id { get; set; }
        public int Pid { get; set; }
        public string Name { get; set; }
        public List Satellite { get; set; } = new List();
        public FixedStar FixedStar { get; set; }
    }
3.数据库数据

4.使用Dapper进行多结果集操作
 public async Task GetMutiStudent()
        {
            using (var dbconnection = new MySqlConnection(_connectionString))
            {
                dbconnection.Open();
                //查找id为1的恒星,然后查找行星类中对应恒星的行(FixedStarid)
                string sql = "SELECt * FROM fixedstar WHERe  Id=@Id; SELECt * FROM planet WHERe FixedStarid = @Id;";
                using (var multi = await dbconnection.QueryMultipleAsync(sql, new { Id = 1 }))
                {
                //两个结果集查出来了,然后将行星加入到恒星中的行星集合中,然后返回
                    var invoice = multi.Read().First();
                    var invoiceItems = multi.Read().ToList();
                    invoice.Planet = invoiceItems;
                    return invoice;
                }
            }
        }
5.查询结果

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1041127.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号