You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何扁平化一对多关联Join结果,实现单个A对应单个D?

解决方案

你可以用LINQ的SelectMany方法实现结果扁平化,它会把嵌套的集合展开,将每个A和对应的D逐一配对。修改后的查询如下:

var flattenedResult = from a in dbContext.As
                      join b in dbContext.Bs on a.Id equals b.A.Id
                      from d in b.AList.Select(listItem => listItem.ObjectOfTypeD)
                      select new { A = a, D = d };

补充说明:

  • 这里的from d in ...等价于LINQ方法语法里的SelectMany,它会遍历每个b.AList转换后的D集合,把每个D元素和当前的A组合成新的匿名对象。
  • 最终结果是一个列表,每个元素都是单个A实例与单个D实例的配对,完全符合你需要的扁平化结构。
  • 只要你的EF Core版本支持,这个查询会被正确翻译成SQL关联语句,不会在客户端做额外的内存展开,性能有保障。

内容的提问来源于stack exchange,提问作者Yoda

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 12:49:55