LINQ unirse con OR

Quiero hacer un JOIN con LINQ utilizando una instrucción OR.

Aquí está la consulta SQL que estoy empezando con:

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

Estoy teniendo problemas para convertir esa cláusula ON a LINQ. Aquí es donde estoy:

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;

Creo que podría usar:

join g in db.Games on 1 equals 1
where (t.ID == g.HomeTeamID || t.ID == g.AwayTeamID)

Y esto funciona, pero parece un poco hacky. ¿Hay alguna manera mejor?

Respuestas a la pregunta(2)

Su respuesta a la pregunta