如何展平一对多关系连接的结果

问题描述 投票:0回答:1

我有加入

var result = from a in dbContext.As
   join b in dbContext.Bs on a.Id equals b.A.Id
   select { A = a, Ds = b.AList.Select(listItem => listItem.ObjectOfTypeD) }

我怎样才能展平结果,这样我就可以得到与单个

Ds
链接的单个
D
的列表,而不是
A
列表?

c# linq entity-framework-core
1个回答
0
投票

您可以尝试添加另一个:

var queryable = from a in dbContext.As
   join b in dbContext.Bs on a.Id equals b.A.Id
   from c in b.Children
   select new { a, c };

或使用

SelectMany
:

var queryable = (from a in dbContext.As
    join b in dbContext.Bs on a.Id equals b.A.Id)
    .SelectMany(t => t.b.Children.Select(c => new {t.a, c}));
© www.soinside.com 2019 - 2024. All rights reserved.