使用 linq 进行多个内连接
我有以下 sql 语句,需要知道如何在 linq 中编写它,但我不知道如何编写多个内部联接,
SELECT Zugehörigkeiten.PK_Dept_ID
FROM mitarbeiter
INNER JOIN (abteilungen
INNER JOIN Zugehoerigkeiten
ON abteilungen.PK_Dept_ID = Zugehoerigkeiten.PK_Dept_ID)
ON mitarbeiter.MA_ID = Zugehoerigkeiten.MA_ID
WHERE (((Zugehörigkeiten.MA_ID)=1));
这就是我所得到的:
var erg = from mitarbeiter
join abteilungen
join Zugehoerigkeiten on abteilungen.PK_Dept_ID equals zugehoerigkeiten.PK_Dept_ID on mitarbeiter.MA_ID equals Zugehoerigkeiten.MA_ID
where zugehoerigkeiten.MA_ID=1
I've got the following sql statement and need to know how to write it in linq, but i can't figure out how to write the multiple inner joins
SELECT Zugehörigkeiten.PK_Dept_ID
FROM mitarbeiter
INNER JOIN (abteilungen
INNER JOIN Zugehoerigkeiten
ON abteilungen.PK_Dept_ID = Zugehoerigkeiten.PK_Dept_ID)
ON mitarbeiter.MA_ID = Zugehoerigkeiten.MA_ID
WHERE (((Zugehörigkeiten.MA_ID)=1));
Thats what i've got:
var erg = from mitarbeiter
join abteilungen
join Zugehoerigkeiten on abteilungen.PK_Dept_ID equals zugehoerigkeiten.PK_Dept_ID on mitarbeiter.MA_ID equals Zugehoerigkeiten.MA_ID
where zugehoerigkeiten.MA_ID=1
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您在 linq 查询中缺少
from
另外,要连接多个值,您需要创建新的匿名对象,因为您只允许有一个
关于equals
但有时它可以更简单。请参阅此或这个答案。
You're missing a
from <some collection>
in the linq queryAlso, to join on multiple values, you need to create new anonymous objects, because you're only allowed to have a single
on <foo> equals <bar>
Sometimes it can be much simpler though. See this or this answer.