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

Posted

技术标签:

【中文标题】从使用 LINQ 的 ID 引用的表中获取记录名称【英文标题】:Get record name from a table that is referenced by ID with LINQ 【发布时间】:2012-02-18 23:47:29 【问题描述】:

我在做一些 MVC 测试时遇到了一个问题。所以目前我有 2 张桌子,一张叫做 Leagues,一张叫做 Teams。

在联赛中我有 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 上抛出错误,告诉我:-

“无法从 'int' 转换为 'MyProject.Models.LeagueTeam'”

任何帮助将不胜感激,因为我似乎有点迷失在这里!

感谢您的帮助和时间

【问题讨论】:

【参考方案1】:
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);

【讨论】:

优秀的作品,我怎么能从视图中调用它呢?目前我有@foreach(Model.Teams 中的var item) @Html.DisplayFor(modelItem => item.TeamName) @Html.DisplayFor(modelItem => item .LeagueTeams) 不确定你的意思。我建议您在控制器中获取所需的所有数据。这通常是比在视图中查询更明智的方法。 是的,我正在尝试获取控制器中的所有内容,但我似乎无法获取 LeagueName。如何在视图中显示 LeagueName? 我添加了一个新提案。这可能就是你想要的。 仍然是一个问题 :( 无法将类型 'System.Linq.IQueryable' 隐式转换为 'System.Collections.Generic.IEnumerable'。存在显式转换(你错过了演员吗?).............无法删除 IEnumerable ,因为那时视图将不起作用

以上是关于从使用 LINQ 的 ID 引用的表中获取记录名称的主要内容,如果未能解决你的问题,请参考以下文章

使用 Doctrine ORM 如何从自己的表中获取一个表来存储记录?

从一个表中删除记录并插入到另一个表中

Linq 查询从两个表中获取不同的记录

用于从 3 个表中获取数据的 LINQ 查询

如何更新引用重复记录的表?

如何从sqlite +phonegap中的表中获取第一列名称