代码
//Lambda
var List = db.Teachers
.GroupJoin(
db.Courses,
Teachers => Teachers.TNo,
Courses => Courses.TNo,
(x, y) => new { Teachers = x, Courses = y })
.SelectMany(
xy => xy.Courses.DefaultIfEmpty(),
(x, y) => new { Teachers = x.Teachers, Courses = y })
.Select(s => new
{
TName = s.Teachers.TName,
CName = s.Courses.CName,
CNo = s.Courses.CNo
});
说明
1. db.Courses
是主表。
2. db.Teachers
是被连接的表,类似left join y
中的y
。
3. .Select
后面的内容是整体查询出的数据,类似select xxxx from y
中的xxxx
。
4. Teachers => Teachers.TNo, Courses => Courses.TNo,
是联立条件,类似left join y on xxx.y=xxx.y
中的xxx.y=xxx.y
错了
db.Teachers
是主表。db.Courses
是被左联的表。
.