首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

怎么在多个表中实现LINQ查询?新年好

2013-03-10 
如何在多个表中实现LINQ查询?新年好本帖最后由 chilli6519 于 2013-02-19 08:33:32 编辑有两个表对应不同

如何在多个表中实现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.名称,


                         上级部门ID = dp.上级部门ID,
                         创建人ID=dp.添加人ID,
                         创建时间=dp.添加时间
                     });
 


[解决办法]
那就对了,就是个左连接查询
部门表作为左表

热点排行