我有以下表格:
表定义:
季节(ID,说明,StartDate)
游戏(ID,季节ID,说明,日期,类型,发布,播放次数)
结果(ID,PlayerID,GameID,位置,积分)
播放器(ID,姓,姓等......)
我想知道玩家参加过哪个季节。有人能指出我正确的方向使用EF获取我的linq查询吗?我遇到了路障。我很确定我需要在某个地方使用Distinct()但是无法理解它。
答案 0 :(得分:0)
只需要将您的表连接在一起(对表定义做出一些假设):
from s in seasons
join g in games on s.Id equals g.seasonId
join r in results on g.Id equals r.gameId
join p in players on r.Id equals p.resultId
where p.Id == playerIdYouCareAbout
select s.whatever
这将为您带来季节,如果需要,您可以使用Distinct
。
答案 1 :(得分:0)
您应该能够获得Season
个对象的列表并致电Distinct
:
int playerID = {something};
var seasons = (from s in db.Seasons
join g in db.Games on s.ID equals g.SeasonID
join r in db.Results on g.ID equals r.GameID
where r.PlayerID == playerID
select s
).Distinct();