0

この質問は、Entity Framework (データベースが最初) を使用した MVC4 プロジェクトに関連しています。

「Company」オブジェクトの (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のusersテーブル(おそらく何ですか)にナビゲーションプロパティを設定していますか?<div>@item.PrimaryUser.Name</div>通常は、それが設定されているかのように何かを行うことができます。

于 2013-01-04T11:03:00.847 に答える
0

モデルでナビゲーション プロパティを使用できます。

EF クエリにプロパティが含まれていることを確認してください。(これは「eager loading」と呼ばれます)

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 に答える