LINQ联同或 [英] LINQ join with OR

查看:83
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆