对于数据库人来说,LINQ可能令人沮丧。我需要将以下SQL转换为Linq。
SELECT COUNT(o.objectiveid), COUNT(distinct r.ReviewId), l.Abbreviation
FROM Objective o
JOIN Review r
on r.ReviewId = o.ReviewId
and r.ReviewPeriodId = 3
and r.IsDeleted = 0
JOIN Position p
on p.PositionId = r.EmployeePositionId
and p.DivisionId = 2
JOIN Location l
on l.LocationId = p.LocationId
GROUP BY l.Abbreviation
group by nested example可能是我必须去的方式,但不确定。 我做了一个小组我使用了以下代码:
var query = from rev in db.Reviews
.Where(r => r.IsDeleted == false && r.ReviewPeriodId == reviewPeriodId)
from obj in db.Objectives
.Where(o => o.ReviewId == rev.ReviewId && o.IsDeleted == false)
from pos in db.Positions
.Where(p => rev.EmployeePositionId == p.PositionId && p.IsDeleted == false && p.DivisionId == divisionId )
from loc in db.Locations
.Where(l => pos.LocationId == l.LocationId)
group loc by loc.Abbreviation into locgroup
select new ReportResults
{
KeyId = 0,
Description = locgroup.Key,
Count = locgroup.Count()
};
return query.ToList();
正确的方法是什么?
由于
答案 0 :(得分:1)
我知道你问的是具体的,但是有一些工具你可以利用它来学习SQL到LINQ。检查一下,看看它们是否有用!通过第一个工具运行SQL查询,看看它是什么。