2009-07-09 195 views
0

我無法在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個字段兩個字段

我希望這是有道理的。

三江源

回答

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

請注意,我只是在協會名稱猜測。你應該能夠弄清設計師給他們的名字。

+0

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

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