2010-08-23 4 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 데이터 디스플레이의 모든 :

난 다음에 볼 수 있습니다. 이 두 필드는 team이라는 다른 테이블에 연결되며 HomeTeamId 및 AwayTeamId의 각 Id는 Team 테이블의 레코드와 관련되며 각 ID는 "Name"을가집니다. 내 문제는 나와있는 Id 필드 대신 Team 테이블에서 "Name"을 어떻게 표시 하는가이다.

컨트롤러 쇼 :

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> 

Team 테이블에 여러 개의 FK가 있으므로 팀에 대해 두 개의 속성 인이 표시됩니다및 Team1 (또는 이와 유사한 것). 생성 된 LINQ 코드를 살펴 보거나 시행 착오 (예 : 출력 관찰)를 통해 어떤 데이터인지 확인해야합니다.

일반적으로 부분 클래스를 사용하여 어떤 FK인지 명확하게하는 더 나은 이름으로 Team 객체를 노출하는 추가 속성을 작성합니다.

+0

쓰레기! 대단히 고마워요. 나는 이것을 몇 시간 동안보고 있었다. 나는 복잡한 해결책을 찾고 있었다. ... – Cunners

+0

@Cunners - 정답으로 표시하는 것을 잊지 마라. – SideFX

관련 문제