Sub选择进入LINQ

时间:2014-09-23 16:49:43

标签: c# linq subquery

我对LINQ很新,我在SQL中编写了一个查询,我不太清楚如何转换为LINQ语句。我所拥有的是MAX()上的语法错误,可能是因为MAX()无法对日期时间值进行操作

感谢任何帮助。

SQL

select COUNT(distinct Club) as total
FROM GCClubData 
where NCBClub = 0 
and Date = (select max(Date) from GCClubData)

LINQ

var db = new EFContext();
var data = db.GCClubDatas.Where(x => x.Date.Equals(db.GCClubDatas.Max().Date) && !x.NCBClub);

2 个答案:

答案 0 :(得分:2)

db = new EFContext();
var maxDate = db.GCClubDatas.Max(x => x.Date);
var data = db.GCClubDatas.Where(x => x.Date == maxDate && !x.NCBClub);

答案 1 :(得分:0)

这在数据库命中方面会更有效:

db.GCClubDatas.Where(x => x.Date == db.GCClubDatas.Max(y => y.Date) && x.NCBClub == 0);