日期:2014-05-20  浏览次数:20936 次

linq如何同时实现left join与right join?
我有三个表
User     用户表
UserOrg  用户组织关联表
Org      组织个
SQL语句是
select distinct * from User 
left join UserOrg 
on User.userid = UserOrg.userid
right join Org
on UserOrg.orgid = Org.orgid

Linq如何实现呢?

------解决方案--------------------
var query=from o in Org
          join x in ( from u in User join uo in UserOrg
                 on u.userid equals uo.userid into lg
                 from uo in lg.DefaultIfEmpty()
                 select new {u,uo})
          on o.orgid equals x.orgid into lg2
          from x in lg2.DefaultIfEmpty()
          select o;