//var list = table1.Join(table2, ee => ee.Id, ff => ff.table1_Id, (ee, ff) => new { ee, ff }).DefaultIfEmpty(); //只能实现inner join
left join例子:
TUsers.GroupJoin(
TUserInfo,
u => u.UserID,
ui => ui.UserID,
(u, ui) => new { u, ui }).Select(o => o)
TUserInfo,
u => u.UserID,
ui => ui.UserID,
(u, ui) => new { u, ui }).Select(o => o)
right join 将TUsers和TUserInfo换个位置.
http://stackoverflow.com/questions/584820/how-do-you-perform-a-left-outer-join-using-linq-extension-methods?noredirect=1
var qry = Foo.GroupJoin(
Bar,
foo => foo.Foo_Id,
bar => bar.Foo_Id,
(x,y) => new { Foo = x, Bars = y })
.SelectMany(
x => x.Bars.DefaultIfEmpty(),
(x,y) => new { Foo=x.Foo, Bar=y});
From:http://www.cnblogs.com/xuejianxiyang/p/6149964.html