我无法在LINQ查询上加入表格。
(来源: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)
我希望这是有道理的。
三江源
答案 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};