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();
    }

并且该记录已在数据库中正确创建。只是名称不会显示在视图上。我是否必须在创建期间自己获取关联的记录?

4

1 回答 1

0

SaveChanges()我在您的代码中没有看到任何调用。您需要调用它以使外键属性加载导航属性。或者,就像您在问题末尾所说的那样,明确加载它们。

于 2012-10-30T16:31:11.030 回答