在Linq中有子句

在Linq中有子句,linq,Linq,我有一个查询,它连接两个表,即header和detail表,在having子句中,我必须检查header的total标记是否应该等于detail标记的总和 查询是:- select h.ExamID,h.ExamID,max(h.TotalMark) as TotalMark from ExamMasters h join ExamDetails d on h.ExamID=d.ExamID group by h.ExamID,h.ExamName having max(h.TotalMark)

我有一个查询,它连接两个表,即header和detail表,在having子句中,我必须检查header的total标记是否应该等于detail标记的总和

查询是:-

select h.ExamID,h.ExamID,max(h.TotalMark) as TotalMark
from ExamMasters h
join ExamDetails d on h.ExamID=d.ExamID
group by h.ExamID,h.ExamName
having max(h.TotalMark)=sum(d.Mark)
我只想将此查询转换为linq语法。 有人能帮忙吗

问候,, 它应该是:

var res = from h in ExamMasters
          join d in ExamDetails on h.ExamID equals d.ExamID
          group new { h, d } by new { h.ExamID, h.ExamName } into hdg
          let max = hdg.Max(x => x.h.TotalMark)
          where hdg.Sum(x => x.d.Mark) == max
          select new
          {
              hdg.Key.ExamID, hdg.Key.ExamName, TotalMark = max
          };

注意
组的使用
<代码>按
进入
,事实上,在group by之后既有
h
又有
d
,我必须把它们放在一个
新的{h,d}

中,注意
group by by
有一个子句
进入
,就像
h组由新的{h.ExamID,h.ExamName}感谢您的及时回复。但我无法在Linq中编写where子句来检查max(TotalMark)=sum(Mark)@AjithCholayil-如果这个答案帮助您解决了问题,请考虑将问题标记为已解决。