你所做的是在代码中的内部连接,在sql中,你已经编写了left-join,所以我将使用left-join
var res=(from tr in dbContext.Transacao
join td in dbcontext.TransacaoDivisao
on tr.CodTransacao equals td.CodTransacao
into r11
from r1 in r11.DefaultIfEmpty()
join sp in dbcontext.ServicosPrestado
on r1.CodServicoPrestado equals sp.CodServicosPrestado
into r22
from r2 in r22.DefaultIfEmpty()
join s in dbContext.CodServico
on r2.CodServico equals s.CodServico
into r33
from r3 in r33.DefaultIfEmpty()
select new {r1,r3})
.GroupBy(x=>x.r3?.Nome)
.Select(x=>new
{
Total=x.Sum(z=>(z.r1==null?0:z.r1.Valor)),
Servico Prestado=x.Key
})
.OrderByDescending(x=>x.Key)
.ToList();