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