В настоящее время у меня есть рекурсивная модель (одно из ее свойств того же типа).
Например:
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; }
Когда я иду в Create View. Я получаю список всех страниц, но при их создании свойство Parent новой страницы имеет значение null.