2012-01-25 15 views
2

MVCテスト中に問題が発生しました。だから、現時点では私は2つのテーブル、1つはリーグと呼ばれ、もう1つはチームと呼ばれています。LINQでIDによって参照されるテーブルからレコード名を取得します

リーグではリーグIDとリーグ名があり、チームにはチームIDとチーム名があります。それから私は、LeagueTeamID、fk_LeagueID、およびfk_TeamIDを含む、LeagueTeamsという別のテーブルを持っています。

今私のViewDataをして、私はチームのテーブルを参照していますので、私は次のようなものがあります: -

@foreach (var item in Model.Teams) { 
<tr> 
    <td> 
     @Html.DisplayFor(modelItem => item.TeamName) 
    </td> 
    <td> 
     @Html.DisplayFor(modelItem => item.LeagueTeams) 
    </td> 
</tr> 

今すぐitem.LeagueTeamsはLeagueTeamIDである、例えば1です。このコードでリーグ名を取得するにはどうすればよいですか?他のものへの参照を呼び出す必要がありますか、またはlinq文を作成する必要がありますか?

UPDATE

は、私は私のコントローラで、この思い付いたが、私はまだ問題を抱えている: -

コードは私に言って、tl.League.LeagueIDにエラーを投げているが
 public ActionResult Index() 
    { 
     ViewBag.Message = "Welcome to ASP.NET MVC!"; 

     TeamsData model = new TeamsData(); 

     var _Teams = (from t in db.Teams 
          from tl in db.LeagueTeams 
          where t.LeagueTeams.Contains(tl.League.LeagueID) 
          select t); 

     model.Teams = _Teams; 


     return View(model); 


    } 

: -

私は少しここで失っているように見えるので、

すべてのヘルプは本当にいただければ幸いです「『MyProject.Models.LeagueTeam』から 'int型から変換できません」!あなたの助けと時間を

おかげ

答えて

0
where t.LeagueTeams.Any(lt => lt.LeagueID == tl.League.LeagueID) 

編集:作品

var _Teams = (from t in db.Teams 
        from tl in t.LeagueTeams 
        select tl.League.Name); 
+0

EXCELLENT、そしてどのように私は、ビューからそれを呼び出すことができますか?現時点ではIは@foreach(Model.TeamsにおけるVARアイテム){Html.DisplayFor @ ​​ (modelItem => item.TeamName) ​​Html.DisplayFor @(modelItem => item.LeagueTeams)を有します } – Johann

+0

あなたは何を意味するのかよく分かりません。私はあなたがコントローラに必要なすべてのデータを取得することをお勧めします。これは通常、ビューで照会するよりもはるかに安全なアプローチです。 – usr

+0

はいコントローラですべてを取得しようとしていますが、LeagueNameを取得できないようです。ビューにLeagueNameを表示するにはどうすればよいですか? – Johann

関連する問題