我需要幫助下面的SQL查詢轉換爲LINQ:是否需要轉換SQL到LINQ幫助 - LEFT JOIN以計數
select s.teacherid,t.lastname,t.firstname,t.title,t.grade, count(s.TeacherID)
from Teacher t
left join Student s on t.teacherid = s.teacherid
and t.isactive = 1
and s.isactive = 1
group by s.TeacherID,t.lastname,t.firstname,t.title,t.grade
I tried the following but it is not returning teacher records who have no students:
var teachers =
(from t in Teachers
join s in Students on t.TeacherID equals s.TeacherID
into results
where t.IsActive == true
from r in results
group r by new { r.TeacherID, r.Teacher.FirstName, r.Teacher.LastName, r.Teacher.Title, r.Teacher.Grade} into g
select new { TeacherID = g.Key.TeacherID,FirstName = g.Key.FirstName, LastName = g.Key.LastName, Title=g.Key.Title, Grade = g.Key.Grade}
);
預先感謝您!
見(http://msdn.microsoft.com/en-us/vcsharp/ee908647#leftouterjoin) –
我已經計算出來[上的LINQ 101聯接運算符。以下表達式起作用! var results = Teachers .Select(t => new {TeacherID = t.TeacherID,FirstName = t.FirstName,LastName = t.LastName,Title = t.Title,Grade = t.Grade,Count = t.Students.Count, }); results.ToList()轉儲(); – rk1962