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();
  • PS:别人的代码,自己解读了一下,如有不对,欢迎━(`∀´)ノ亻!发言,指正(๑‾ ꇴ ‾๑)
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值