简单的LINQ查询

时间:2009-07-09 01:11:00

标签: asp.net-3.5

我无法在LINQ查询上加入表格。

alt text
(来源:kalleload.net

如你所见,那里有三张桌子。在我的网页上,我想在列表视图中显示以下数据。

betid | bet.title | bet.description | match.location | match.begindate / enddate | teamone NAME | teamtwo名称。

让我解释一下。 我想要赌注表中的3个字段。 我想要匹配表中的2个字段(match.matchid = bet.matchid) 我想要来自TEAM表的2个字段(其中match.teamone = team.teamid和match.teamtwo = team.teamid)

我希望这是有道理的。

三江源

2 个答案:

答案 0 :(得分:3)

看起来您已经定义了关系。如果您正在使用设计器,则应在生成的类中包含现有实体。

var result = bet.Select( b => new {
                 BetID = b.betid,
                 Title = b.title, 
                 Description = b.description,
                 BeginDate = b.match.begindate, 
                 EndDate = b.match.enddate, 
                 TeamOneName = b.match.team_1.teamname, 
                 TeamTwoName = b.match.team_2.teamname 
              } );

请注意,我只是猜测关联名称。你应该能够找出设计师给他们的名字。

答案 1 :(得分:2)

这个的关键是在团队表中包括一个自我加入,对于第一个团队和第二个团队,如下所示:

var result = from bet in db.bet  
  join match in db.match on bet.matchid equals match.matchid
  join team1 in db.team on match.teamone equals team1.teamid 
  join team2 in db.team on match.teamtwo equals team2.teamid
  select new {bet.betid, bet.title, bet.description, match.location, match.begindate,   match.enddate, team1.name, team2.name};