使用mvc4和ef5 codefirst。遇到了一个问题,在使用外键创建新数据记录时创建新的数据记录。列表创建的条目一切看起来都很好:
@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我?
我在代码中没有看到对SaveChanges()
的任何电话。您需要调用此功能,以使外国密钥属性加载导航属性。要么,要么,就像您在问题结束时所说的那样,要明确加载它们。