2

MVC4およびEF5コードファーストを使用します。外部キーを持つ行を参照して新しいデータレコードを作成するときに問題が発生しました。作成されたエントリを一覧表示すると、すべて問題なく表示されます。

@foreach (var item in Model) {
   @Html.DisplayFor(modelItem => item.Location.name)
   @Html.DisplayFor(modelItem => item.Action.name)
   ...

新しいレコードを作成すると、参照は外部コンテンツ(名前)を表示できません。

    ...
    @Html.LabelFor(model => model.locationID)
    @Html.DisplayFor(model => model.Location.name)

    @Html.LabelFor(model => model.actionID)
    @Html.DisplayFor(model => model.Action.name)
    ...

外部キーはコントローラーに正しく入力されています(簡単な例を参照)

    public ActionResult Create()
    {
        Timerecord tm = new Timerecord();

        tm.currentTime = DateTime.Now;
        tm.locationID = 1;
        tm.actionID = 5;

        ViewData.Model = tm;
        return View();
    }

レコードはデータベースに正しく作成されます。名前だけはビューに表示されません。作成中に関連するreocrdを自分でフェッチする必要がありますか?

4

1 に答える 1

0

SaveChanges()コードにへの呼び出しがありません。外部キープロパティがナビゲーションプロパティをロードするには、これを呼び出す必要があります。それか、質問の最後に言ったように、それらを明示的にロードします。

于 2012-10-30T16:31:11.030 に答える