简单的LINQ查询

问题描述:

我无法在LINQ查询上连接表。简单的LINQ查询

alt text http://www.kalleload.net/uploads/qiscjknuhutn.jpg

正如你可以看到有三个表存在。在我的网页上,我想在列表视图中显示以下数据。

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

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

我希望这是有道理的。

三江源

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

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 
       }); 

请注意,我只是在协会名称猜测。你应该能够弄清设计师给他们的名字。

+0

是的,我同意。比我的解决方案更可读:) – 2009-07-09 01:47:05

这一个关键是要包括自我加入对球队表,团队一个和二队,像这样:

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};