//内连
from a in TableA
join b in TableB
on a.Id  equals b.Id
select new { aName=a.aName, bName=u.bName}

//左连
from a in TableA
join b in TableB
on a.Id  equals b.Id
into Grp
from grp in Grp.DefaultIfEmpty()
select new { aName=a.aName, bName=(grp==null)?"":grp.bName}

//右连
from a in TableA
join b in TableB
on a.Id  equals b.Id
into Grp
from grp in Grp.DefaultIfEmpty()
select new { aName=(grp==null)?"":grp.aName,bName=b.bName}