目前我有一个递归模型(它的一个属性是同一类型)。
例如:
public class Page
{
public int ID { get; set; }
public string Description{ get; set; }
public int ParentID {get; set; }
}
现在,当我想访问某人的父母时,我必须获取 ParentID,查询数据库并找到页面。我想要的是我可以做到以下几点:
Page page = _db.GetFirstPage();
Page pagesParent = page.Parent;
我怎样才能做到这一点?我尝试了以下方法:
public class Page
{
public int ID { get; set; }
public string Description{ get; set; }
public int ParentID {get; set; }
public Page Parent { get; set; }
}
因为我认为实体框架会自动假设 Parent 链接到 parentID,但这不起作用。
好的,这是我所有的代码:控制器方法如下:
public ActionResult Create()
{
var pages = _db.Pages;
ViewBag.Pages = new SelectList(pages,"ID","Description");
return View();
}
在视图中:
<div class="editor-label">
@Html.LabelFor(model => model.ParentID)
</div>
<div class="editor-field">
@Html.DropDownList("Pages", String.Empty)
@Html.ValidationMessageFor(model => model.ParentID)
</div>
该模型:
public int ID { get; set; }
public string Description { get; set; }
public string Body { get; set; }
public int? ParentID { get; set; }
public virtual Page Parent { get; set; }
当我去创建视图。我得到了所有页面的列表,但是当我创建它们时,新页面的 Parent 属性为空。