Tôi muốn thực hiện JOIN với LINQ bằng câu lệnh OR.LINQ tham gia với OR
Dưới đây là các truy vấn SQL tôi bắt đầu với:
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
Tôi đang gặp rắc rối chuyển đổi mà ON khoản để LINQ. Đây là nơi tôi đang ở:
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;
Tôi nghĩ rằng tôi có thể sử dụng:
join g in db.Games on 1 equals 1
where (t.ID == g.HomeTeamID || t.ID == g.AwayTeamID)
và các công trình này, nhưng dường như loại dường như hacky. Có cách nào tốt hơn?
Tôi chắc chắn muốn sử dụng || nhưng tôi đã hy vọng tôi có thể đặt nó trong JOIN. Tôi đã không thực hiện nó chưa thử nghiệm những gì đầu ra sql là nhưng tôi có nó biên dịch với 1 bằng 1 trong tham gia và tuyên bố OR của tôi xuống trong mệnh đề where. – AndyMcKenna