SQL到LINQ查询等效

时间:2015-10-07 10:08:10

标签: sql linq sql-to-linq-conversion

您好我需要从这个SQL中创建linq查询:

SQL:

select 
   p.id, 
   p.Name, 
   sum(h.Hour) 
from 
   dbo.Hour h 
INNER JOIN dbo.ProjectView p ON h.ProjectId = p.Id 
WHERE 
   h.PeopleId = 7999 
group by 
   p.Name, p.Id

LINQ:我试过这个但是不一样了:

    var query = from hours in _hourRepository.GetAll()
                join proj in _projectRepository.GetAll() on hours.ProjectId equals proj.Id
                where hours.PeopleId == personId
                group hours by new { proj.Id, proj.Name, proj.Flag, hours.Hours } into g
                select new PopleProjectsSumDto
                {
                    Id = g.Key.Id,
                    Name = g.Key.Name,
                    Flag = g.Key.Flag,
                    Hours = g.Sum(h => h.Hours)
                };

好的,我可以通过从群组中删除小时来找到解决方案

LINQ:

    var query = from hours in _hourRepository.GetAll()
                join proj in _projectRepository.GetAll() on hours.ProjectId equals proj.Id
                where hours.PeopleId == personId
                group hours by new { proj.Id, proj.Name, proj.Flag } into g
                select new PopleProjectsSumDto
                {
                    Id = g.Key.Id,
                    Name = g.Key.Name,
                    Flag = g.Key.Flag,
                    Hours = g.Sum(h => h.Hours)
                };

0 个答案:

没有答案