如何在多个表中实现LINQ查询?新年好

chilli6519 2013-02-19 08:21:41
有两个表对应不同的实体类
一个表对应部门,包括部门编号和部门名称,编号为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?

谢谢
...全文
114 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
q107770540 2013-02-19
  • 打赏
  • 举报
回复
引用 楼主 chilli6519 的回复:
希望如果人员和部门的对应关系为空,则查询所有,请问该如何处理LINQ?
不是很明白 查询所有是什么意思 应该是个左连接 详细的,楼主最好给出些数据和结果来看看
q107770540 2013-02-19
  • 打赏
  • 举报
回复
 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.添加时间
});
q107770540 2013-02-19
  • 打赏
  • 举报
回复
那就对了,就是个左连接查询 部门表作为左表
chilli6519 2013-02-19
  • 打赏
  • 举报
回复
引用 3 楼 q107770540 的回复:
引用 楼主 chilli6519 的回复:希望如果人员和部门的对应关系为空,则查询所有,请问该如何处理LINQ? 不是很明白 查询所有是什么意思 应该是个左连接 详细的,楼主最好给出些数据和结果来看看
如果对应关系为空,就类似于查询 select * from 部门列表,即返回所有部门

8,497

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 LINQ
社区管理员
  • LINQ
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧