使用GROUP JOIN的LINQ查询 - 需要组中的其他数据

时间:2010-11-02 12:27:29

标签: .net linq

我正在处理LINQ,我有以下情况:

我有一个数据库,代表不同日期的团队之间的体育比赛,组织如下:

Table MATCH
___________
MatchID
MatchLocation
MatchDate


Table MATCHTEAM
________________
MatchID
TeamID
HomeOrAway
Points

Table TEAM
__________
TeamId
TeamName

现在我希望能够查询数据库以查看特定团队所玩的所有匹配项以及每次匹配的相关团队数据。到目前为止,我已经能够执行一个执行GROUP JOIN的查询,如下所示:

    Using MyMatchEntites As New MatchEntities
        Return (From M In MyMatchEntites.Match, _
                MT In MyMatchEntites.MatchTeam _
                Where M.MatchId = MT.Match.MatchId And _
                MT.Team.TeamId = inputTeamId _
                Select M _
                Group Join MT2 In MyMatchEntites.MatchTeam _
                On MT2.Match.MatchId Equals M.MatchId _
                Into _
                MatchTeams = Group).ToList
    End Using

这为我提供了输入球队所进行的比赛列表,每个记录都有一个相关的比赛列表。但是,我还想在此子列表中包含团队名称以供显示。如何在查询中创建的MatchTeams组中包含TeamName字段?

1 个答案:

答案 0 :(得分:0)

只是一个猜测......

是否可以做类似的事情:

Select M, T _
Group Join MT2 In MyMatchEntites.MatchTeam _
On MT2.Match.MatchId Equals M.MatchId _
Group Join T In MyMatchEntites.Team
On T.TeamId = MT2.TeamId

我很确定你可以用LINQ做多个GroupJoins,但我不知道在select子句中检索多个实体。顺便说一句,这将返回整个Team实体,而不仅仅是字段TeamName。

希望这有帮助。