此问题涉及带有实体框架的MVC4项目(数据库优先)
我将“公司”对象的(EF)集合传递给视图。
我需要在每个“公司”对象中显示存储为int(外键)的“主要用户”的名称。
我能够像这样得到PrimaryUserID:
@foreach (var item in Model)
{
<div>@item.PrimaryUserID</div>
}
但我无法弄清楚如何从ID访问PrimaryUser对象?
有没有办法在不将包含PrimaryUser对象的自定义模型传递给我的视图的情况下执行此操作?
非常感谢任何帮助!
//编辑 - 这就是我目前将集合传递给我的视图的方式
public ActionResult Installers(int id = 0)
{
CompanyType installer = db.CompanyTypes.Single(ct => ct.Description == "Installer");
return View(installer.Companies.ToList());
}
答案 0 :(得分:0)
您的EDMX中的用户表是否设置了导航属性(大概是您的)?通常情况下,如果设置了<div>@item.PrimaryUser.Name</div>
,您就可以执行此操作。
答案 1 :(得分:0)
您可以在模型中使用导航属性。
确保您已在EF查询中包含该属性。 (这称为“急切加载”)
public ActionResult Installers(int id = 0)
{
CompanyType installer =
db.CompanyTypes
.Include( ct => ct.Companies.Select( c => c.PrimaryUser ) )
.Single( ct => ct.Description == "Installer" );
return View( installer.Companies.ToList() );
}
然后只需访问标记中的属性:
<div>@item.PrimaryUser.Name</div>