LINQ junte-se com OU
Eu quero fazer um JOIN com LINQ usando uma instrução OR.
Aqui está a consulta SQL que estou começando:
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
Estou tendo problemas para converter essa cláusula ON em LINQ. Aqui é onde eu estou:
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;
Eu acho que eu poderia usar:
join g in db.Games on 1 equals 1
where (t.ID == g.HomeTeamID || t.ID == g.AwayTeamID)
e isso funciona, mas parece meio que parece hacky. Existe uma maneira melhor?