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

如何在多个表中实现LINQ查询?新年好
本帖最后由 chilli6519 于 2013-02-19 08:33:32 编辑
有两个表对应不同的实体类
一个表对应部门,包括部门编号和部门名称,编号为GUID
另外一个表对应人员和部门的关系,一个人可以有多个部门,人员编号为GUID

现在希望通过人员编号,得到改人员所属的所有部门信息,

                var query = from dp in db.部门表
                            join p in db.部门_YY所属表
                    on dp.ID equals p.部门ID                           
                    select dp;

                return query.Select(a => new 部门
                    {
                        ID = a.ID,
                        名称 = a.名称,
                        上级部门ID = a.上级部门ID,
                        创建人ID=a.添加人ID,
                        创建时间=a.添加时间
                    });

希望如果人员和部门的对应关系为空,则查询所有,请问该如何处理LINQ?

谢谢

------解决方案--------------------
参考http://blog.csdn.net/q107770540/article/details/7282005
------解决方案--------------------
本帖最后由 q107770540 于 2013-02-19 13:57:59 编辑
 var query = from dp in db.部门表
             join p in db.部门_YY所属表
             on dp.ID equals p.部门ID    into leftJoin    
           from p in ledtJoin.DefaultIfEmpty()                   
             select new 部门
                     {
                         ID = dp.ID,
                         部门ID=p==null?0:p.部门ID,
                         名称 = dp.名称,