我有以下linq代码转换自lambda
var train = (from a in db.Certificates
where a.Year.Value.Year == year && a.TrainingTypeId.Value == trainingTypeId
&& a.IsApproved.Value
&& a.TrainingSchedules.Any(b => b.EndDate >= DateTime.Now)
select a).Distinct();
以下是上面代码中的lambda代码
var train = db.Certificates
.Join(db.TrainingSchedules, a => a.CertificateId, b => b.CertificateId, (a, b) => new { a, b })
.Where(x => x.a.Year.Value.Year == year && x.a.TrainingTypeId.Value == trainingTypeId && x.a.IsApproved.Value && x.b.EndDate >= DateTime.Now)
.Select(z => z.a).Distinct();
我的问题是关于.Any
当我尝试将lambda查询转换为linq时我注意到的。如果我的数据库中的两个表有关系,那么.Any
将被使用。如我错了请纠正我。感谢。
已更新
以下是我要转换的代码
var reg = db.Registrations
.Join(db.Employees, a => a.EmployeeId, b => b.EmployeeId, (a, b) => new { a, b })
.Where(c => c.a.ScheduleId.Value == scheduleId && (!c.a.Attended.HasValue || !c.a.Attended.Value))
.Select(d => d.a);
我可以将First Code
转换为Any
吗?如果没有,请告诉我原因。感谢。