2010-08-23 45 views
0

位mvc的新手。我無法用以下情形:如何顯示通過ID鏈接的一個sql表中的名稱?

我有以下視圖:

 <tr> 
     <% foreach (var game in (IEnumerable<Game>)ViewData["Game"]) 
      { %> 
     <td> 
      <input type="checkbox" name="selectedObjects" value="<%=game.Id%>" /> 
     </td> 
     <td> 
      <%=game.GMTDateTime%> 
     </td> 
     <td> 
      <%=game.HomeTeamId%>        
     </td> 
     <td> 
      <%=game.AwayTeamId%> 
     </td> 
     <td> 
      <%=game.Venue%> 
     </td> 
     </tr> 

所有數據顯示,除了HomeId和AwayId OK的。這兩個字段鏈接到另一個稱爲團隊的表,HomeTeamId和AwayTeamId中的每個Id都與Team表中的記錄相關,每個ID都有一個「名稱」。我的問題是如何顯示Team Name中的「Name」而不是顯示的Id字段。

控制器顯示:

ViewData["Game"] = dc.Games.GetGames(); 

我正在使用LINQ查詢是:

public static IEnumerable<Game> GetGames(this Table<Game> source) 
    { 
     return from c in source 
       orderby c.GMTDateTime 
       select c; 
    } 

回答

2

假設你已經確定你的架構的關係,這應該工作:

<td> 
     <%=game.Team.Name%>        
    </td> 
    <td> 
     <%=game.Team1.Name%> 
    </td> 

由於團隊表中有多個FK,您將看到Team的兩個屬性,TeamTeam1(或類似)。您需要通過查看生成的LINQ代碼來確定哪個是哪個,或者通過反覆試驗(即觀察輸出)來確定。

通常使用部分類我將創建更多的屬性,使用更好的名稱公開Team對象,以清楚它們適用於哪個FK。

+0

廢話!非常感謝你的工作。我一直在看這個好幾個小時。我正在尋找一個複雜的解決方案... – Cunners 2010-08-23 12:22:24

+0

@Cunners - 不要忘記標記這是正確的答案。 – SideFX 2010-08-23 14:55:35

相關問題