问题描述
我是 LINQ 的新手,我正在尝试将此 sql 查询转换为 LINQ,但没有成功。 请帮忙
select z.des_zona,s.des_sector,sum(sueldo)as Sueldos
from Personas p
inner join Sectores s on s.cod_sector=p.cod_sector
inner join Zonas z on z.cod_zona=p.cod_zona
group by z.des_zona,s.des_sector
解决方法
假设你的实体是这样的
public class Persona
{
public int sueldo { get; set; }
public string cod_sector { get; set; }
public string cod_zona { get; set; }
}
public class Sectore
{
public string cod_sector { get; set; }
}
public class Zona
{
public string cod_zona { get; set; }
}
这里是linq
Personas.Join(Sectores,l => l.cod_sector,r => r.cod_sector,(l,r) => new { Persona = l,r.cod_sector })
.Join(Zonas,l => l.Persona.cod_zona,r => r.cod_zona,r) => new { l.Persona.sueldo,l.cod_sector,r.cod_zona })
.GroupBy(i => new { i.cod_zona,i.cod_sector })
.Select(g => new
{
g.Key.cod_zona,g.Key.cod_sector,Sueldos = g.Sum(i => i.sueldo)
})
.ToList();