0

这个问题与带有实体框架的 MVC4 项目有关(数据库优先)

我将“公司”对象的(EF)集合传递给视图。

我需要显示在每个“公司”对象中存储为 int(外键)的“主要用户”的名称。

我能够像这样获得 PrimaryUserID:

@foreach (var item in Model)
{
      <div>@item.PrimaryUserID</div>     
}

但我不知道如何从 ID 访问 PrimaryUser 对象?

有没有办法在不将包含 PrimaryUser 对象的自定义模型传递给我的视图的情况下做到这一点?

任何帮助将非常感激!

//EDIT - 这是我当前将集合传递给我的视图的方式

   public ActionResult Installers(int id = 0)
    {
        CompanyType installer = db.CompanyTypes.Single(ct => ct.Description == "Installer");

        return View(installer.Companies.ToList());
    }
4

2 回答 2

0

您是否在 EDMX 中为您的用户表设置了导航属性(大概是什么)?<div>@item.PrimaryUser.Name</div>通常,如果设置好了,您就可以做类似的事情。

于 2013-01-04T11:03:00.847 回答
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>
于 2013-01-04T11:03:25.043 回答