LINQ联同或 [英] LINQ join with OR
本文介绍了LINQ联同或的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想用使用LINQ一个或陈述的JOIN
I want to do a JOIN with LINQ using an OR statement.
下面是SQL查询我开始有:
Here is the SQL query I'm starting with:
SELECT t.id
FROM Teams t
INNER JOIN Games g
ON (g.homeTeamId = t.id OR g.awayTeamId = t.id)
AND g.winningTeamId != 0
AND g.year = @year
GROUP BY t.id
我无法转换上子句LINQ。这是我在哪里:
I'm having trouble converting that ON clause to LINQ. This is where I'm at:
var y = from t in db.Teams
join g in db.Games on t.ID equals g.AwayTeamID //missing HomeTeamID join
where g.WinningTeamID != 0
&& g.Year == year
group t by t.ID into grouping
select grouping;
我想我可以使用:
I think I could use:
join g in db.Games on 1 equals 1
where (t.ID == g.HomeTeamID || t.ID == g.AwayTeamID)
和这工作,但似乎有点哈克看来。有没有更好的办法?
and this works but seems kind of seems hacky. Is there a better way?
推荐答案
应用WHERE子句中的布尔条件,因此,使用||是要走的路。你可以链接多个where子句,但我相信会给你一个与操作,而不是一个或
The where clause applies a boolean condition, so using "||" is the way to go. You can chain multiple where clauses but I believe that will give you a "and" operation, rather than an "or".
这篇关于LINQ联同或的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文