gpt4 book ai didi

c# - LINQ Lambda 左连接与内连接

转载 作者:行者123 更新时间:2023-11-30 20:22:45 25 4
gpt4 key购买 nike

我已经编写了一个 LINQ lambda 查询,到目前为止,它返回所有没有相关培训行的员工,但效果很好。我现在需要修改我的 where 子句以使用 manager id 将 manager 表连接到 staff 上。

我有点不确定如何修改此左连接 lambda 以包含内连接。如果有人能指出我正确的方向,将不胜感激。

    var managerId = 1;

var query = db.staff

.GroupJoin(db.training,
s => s.id,

t => t.staff_id,
(s, t) => new {Staff = s, Training = t.FirstOrDefault()})

//TODO: join manager.id on staff.manager_id


.Where(st => st.Training==null);//TODO: modify where clause && manager.id == managerId

谢谢

最佳答案

内部联接是使用 Join 方法执行的。我认为您的查询应该是这样的:

var query = db.staff
.GroupJoin(db.training,
s => s.id,
t => t.staff_id,
(s, t) => new { Staff = s, Training = t.FirstOrDefault() })
.Join(db.manager,
gj => gj.Staff.manager_id,
m => m.id,
(gj, m) => new { Staff = gj.Staff, Training = gj.Training, Manager = m })
.Where(st => st.Training == null
&& st.Manager.id == managerId);

关于c# - LINQ Lambda 左连接与内连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30525830/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com