linq与max()和join

linq与max()和join,linq,Linq,这是我正在使用的linq语句 var renewalQuery = from r in crnnsupContext.Renewals from w in crnnsupContext.WorkPlaces join p in crnnsupContext.ProvStates on p.ProvinceStateID equals r.Employ

这是我正在使用的linq语句

            var renewalQuery = from r in crnnsupContext.Renewals
                               from w in crnnsupContext.WorkPlaces
                               join p in crnnsupContext.ProvStates on p.ProvinceStateID equals r.EmployerProvState
                               where  r.RegNumber == _username && r.PlaceOfWork == w.WorkID
                               select r;
有一个
r.RenewalYear
,我想获取最近一年的数据,所以我尝试了如下方法

                var renewalQuery = from r in crnnsupContext.Renewals
                               group r by r.RenewalYear into g
                               from w in crnnsupContext.WorkPlaces
                               join p in crnnsupContext.ProvStates on p.ProvinceStateID equals r.EmployerProvState
                               where  r.RegNumber == _username && r.PlaceOfWork == w.WorkID
                               select g.max(r.RenewalYear);

显然,它不起作用,有人知道正确的语法吗?非常感谢

选择您的年份,然后在上面使用Max()


有一个错误“名称'p'不在equals左侧的范围内”,此外,这是否仅获取RenewalYear?事实上,我想用最新的唱片获得整张唱片RenewalYear@pita,我以为你的查询是有效的,你只需要最大值year@pita-它不在左侧的范围内,因为这是你要加入的东西,所以它属于右边:
从w in…工作场所加入p in…r上的provestate.EmployerProvState等于p.ProvinceStateID
你是只想得到你收到的最新续订年份,还是最新年份由日历年决定?
var renewalQuery = (from r in crnnsupContext.Renewals
                               group r by r.RenewalYear into g
                               from w in crnnsupContext.WorkPlaces
                               join p in crnnsupContext.ProvStates on p.ProvinceStateID equals r.EmployerProvState
                               where  r.RegNumber == _username && r.PlaceOfWork == w.WorkID
                               select r.RenewalYear).Max();