[英]Linq group by with nullable property. unable to skip the object in child list
我有一个带有 2 个参考类 ID 的表。 如果它们不是 null,我想对 ChildClass 2 属性进行分组并在列表中添加子 class3。 我无法做到如何将 null 检查以不在列表中添加 null 项目
var groupData = await _context.Class1
.Where(ct => ct.Id == Id
&& ct.C2 != null )
.Select(h => new { h.Class2.F1, h.Class2.F2, h.Class3 }
).ToListAsync();
var result = groupData.GroupBy(g => new { g.F1, g.F2 }).Select(h => new MyResult
{
F1 = h.Key.F1,
F2 = h.Key.F2
F4List = h.Select(x =>new MyModel
{
C5F1 = x.Class3.F1,
C5F2 = x.Class3.F2,
C5F3 = x.Class3.F3,
}).ToList()
}).ToList();
试过
以下但它在列表中添加 null 项目而不是跳过这些记录
var groupData = await _context.Class1
.Where(ct => ct.Id == Id
&& ct.C2 != null )
.Select(h => new { h.Class2.F1, h.Class2.F2, h.Class3 }
).ToListAsync();
var result = groupData.GroupBy(g => new { g.F1, g.F2 }).Select(h => new MyResult
{
F1 = h.Key.F1,
F2 = h.Key.F2
F4List = h.Select(x => x.Class3 != null ? new MyModel
{
C5F1 = x.Class3.F1,
C5F2 = x.Class3.F2,
C5F3 = x.Class3.F3,
}: null).ToList()
}).ToList();
class1 类似于
public class Class1
{
int Id
int class2ID
int? class3ID
virtual Class2
virtual Class3
}
请让我知道我错过了什么
如果要跳过 null 值,请使用 WHERE 子句:
F4List = h.Where( x => x.Class3 != null )
.Select( x => new MyModel
{
C5F1 = x.Class3.F1,
C5F2 = x.Class3.F2,
C5F3 = x.Class3.F3,
})
.ToList()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.