LINQ查询。 Linq.Any

时间:2016-09-08 08:25:12

标签: linq lambda

我有以下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吗?如果没有,请告诉我原因。感谢。

0 个答案:

没有答案