我是新的LINQ和不知道如何写分组查询。我有两个表人员和工资,我有SQL查询:
Select Person.Unit, count(Person.Unit) as QuantityPeron, sum(Salary.Val) as SumSalary
from Person, Salary
where Person.Person_id = Salary.Person_id
group by Person.Unit
我在努力:
var sumarySalary = (
from c in _context.Person
join l in _context.Salary on c.Person_id equals l.Person_id
group c by c.Unit into to g
select new
{
Units = c.Unit,
QuanPer = c.Unit.Count(),
TotVal = g.Val.Sum()
}).ToList();
但是错误
1条答案
按热度按时间mf98qq941#
首先,我应该注意到您的SQL并不好,而且使用的是老式的联接。其次,如果您只是使用模型生成器,那么在一个设计良好的数据库中,您将得到一个根本不需要使用联接的模型。在Linq中,除了您只需使用“点导航”来访问相关数据之外,在特定情况下很少需要联接:
你的SQL是可查询的,因为它有计数(人。单位)在它。基于你的数据,你的SQL和这个Linq可能是完全错误的。