从具有LINQ的ID引用的表中获取记录名称

时间:2012-01-25 19:10:52

标签: c# asp.net-mvc asp.net-mvc-3 linq linq-to-entities

我在做一些MVC测试时遇到了问题。所以目前我有2张桌子,一张叫做联赛,另一张叫做队伍。

在联赛中我有LeagueID,LeagueName,在团队中我有TeamID和TeamName。然后我有另一个名为LeagueTeams的表,其中包含LeagueTeamID,fk_LeagueID和fk_TeamID。

现在在我的ViewData中,我引用了Teams表,所以我有以下内容: -

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

现在item.LeagueTeams是例如1,即LeagueTeamID。如何在此代码中获取联盟名称?我是否需要调用其他内容的引用,或者创建一个linq语句?

更新

我在控制器中想出了这个,但我仍有问题: -

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


    }

然而,代码在tl.League.LeagueID上抛出错误,告诉我: -

&#34;无法转换为&#39; int&#39;到&#39; MyProject.Models.LeagueTeam&#39;&#34;

任何帮助都会非常感激,因为我似乎有点迷失在这里!

感谢您的帮助和时间

1 个答案:

答案 0 :(得分: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);