[英]Linq - where condition on child table
我们可以在下面的查询的子表中的列上应用where条件吗?
患者是主表,我需要在以下条件下用“评估”表中的列来补充
Where(a => a.Date >= startdate && a.Date < stopdate && a.patient.assess.column1 == 10)
完整查询
=> dc.Patient
.Include("first")
.Select(a => new
{
Patient = a,
Date = a.Assess.Max(x => x.Date),
M3 = a.M3,
Assess = a.Assess,
Details = a.Assess
.Select(x => new
{
x.Key,
x.Team
})
})
.Where(a => a.Date >= startdate && a.Date < stopdate)
.OrderBy(a => a.Date)
.Take(batchSize)
.ToList()
);
您可以在lambda中使用其他子/嵌入的lambda语句。 在这种情况下,可以在Where语句中引用IEnumerable.Any语句。 如果存在与lambda匹配的任何条件,并且可以将其称为Assess
是一个集合,则Any会返回true
。
我的假设是:
Assess
是一个强类型集合 Assess
实例的property column
等于10
的值,则您希望任何Where
子句都匹配 码:
=> dc.Patient
.Include("first")
.Select(a => new
{
Patient = a,
Date = a.Assess.Max(x => x.Date),
M3 = a.M3,
Assess = a.Assess,
Details = a.Assess.Select(x => new
{
x.Key,
x.Team
})
})
.Where(a => a.Date >= startdate && a.Date < stopdate && a.Assess.Any(ass => ass.column1 == 10))
.OrderBy(a => a.Date)
.Take(batchSize)
.ToList()
);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.