Je veux faire un JOIN avec LINQ en utilisant une instruction OR.LINQ joindre avec OU
Voici la requête SQL Je commence avec:
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
Je ne parviens pas à convertir cette clause ON à LINQ. C'est là où je suis:
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;
Je pense que je pourrais utiliser:
join g in db.Games on 1 equals 1
where (t.ID == g.HomeTeamID || t.ID == g.AwayTeamID)
et cela fonctionne, mais semble semble un peu hacky. Y a-t-il un meilleur moyen?
Je veux absolument utiliser || mais j'espérais pouvoir le mettre au JOIN. Je ne l'ai pas encore exécuté pour tester ce que la sortie sql est mais je l'ai compilant avec 1 égal à 1 dans la jointure et mon instruction OR dans la clause where. – AndyMcKenna