我无法将此SQL查询转换为有效的linq语句

select sum(cena), id_auta, max(servis)from dt_poruchy left outer join mt_auta on dt_poruchy.id_auta=mt_auta.id
where dt_poruchy.servis>=3 group by id_auta;


我尝试过类似的操作,但无法处理select语句

   var auta = from a in MtAuta.FindAll()
                   join p in DtPoruchy.FindAll() on a equals p.MtAuta into ap
                   from ap2 in ap.DefaultIfEmpty()
                   where ap2.SERVIS >= 3
                   group ap2 by ap2.ID into grouped
                   select new {


我将不胜感激!

最佳答案

我已经达到了此解决方案(假设“ cena”属于MtAuta.FindAll()):

        var auta = from e in
                       (from a in DtPoruchy.FindAll()
                        where a.SERVIS >= 3
                        join p in MtAuta.FindAll() on a.MtAuta equals p.Id into ap
                        from ap2 in ap.DefaultIfEmpty()
                        select new
                        {
                            Cena = ap.cena,
                            IdAuta = a.MtAuta,
                            Servis = a.servis
                        })
                   group e by e.IdAuta into g
                   select new
                   {
                       Cena = g.Sum(e => e.cena),
                       IdAuta = g.Key,
                       Servis = g.Max(e => e.servis)
                   };

10-06 13:30