zoukankan      html  css  js  c++  java
  • dapper 父子集合查询 获取带有子集集合的数据

    Dapper之QueryAsync

    public static Task<IEnumerable> QueryAsync<TFirst, TSecond, TReturn>()
    应用场景:获取带有子集集合的数据
    • Parent——带有子节点的Model
    public class Parent
        {
            public Parent()
            {
                Child= new List<Child>();
            }
    
            public string Id { get; set; }
    
            public string Name { get; set; }
    
            public List<Child> Child{ get; set; }
        }
    

    Child——子节点model

    public class Child
        {
            public string Id { get; set; }
    
            public string Name { get; set; }
        }
    
     var lookup = new Dictionary<string, Parent>();
     var sql = " ";
     await db.QueryAsync<Parent, Child, Parent>(
                    sql,
                    (b, s) =>
                    {
                    	//获取父节点
                        Parenttmp;
                        if (!lookup.TryGetValue(b.Id, out tmp))
                        {
                            tmp = b;
                            lookup.Add(b.Id, tmp);
                        }
    					//获取子节点集合
                        if (s != null && (!tmp.Child.Any(x => x.Id == s.Id)))
                        {
                            tmp.Child.Add(s);
                        }
                        return b;
                    },
                    new { ParentId = id });
                 return lookup.Values.ToList();
  • 相关阅读:
    [APIO2014]序列分割
    [HNOI2014]世界树
    [THUWC2017]随机二分图
    快乐游戏鸡
    [SHOI2014]三叉神经树
    带花树学习笔记
    最小树形图——朱刘算法学习笔记
    【WC2018】即时战略
    [HNOI2015]接水果
    [HAOI2018]染色
  • 原文地址:https://www.cnblogs.com/SpiritWalker/p/13978819.html
Copyright © 2011-2022 走看看