У меня возникла проблема с созданием объекта. У моей сущности «иерархические» отношения «один ко многим». Раздел может принадлежать другому подразделению. Вот моя сущность:MVC4, EF: Создать новый объект с «иерархическим» отношением «один ко многим»
//Properties
[Key]
[Column(Order = 0)]
public int DivisionId { get; set; }
[Required]
[MaxLength(30)]
[Column("DivisionName", Order = 2)]
public string Name { get; set; }
//Navigation properties
public virtual Division ParentDivision { get; set; }
Вот мой метод, чтобы создать новое подразделение:
public ActionResult Create()
{
ViewBag.ParentDivision = new SelectList(db.Divisions, "DivisionId", "Name");
return View();
}
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create(Division division)
{
if (ModelState.IsValid)
{
db.Divisions.Add(division);
db.SaveChanges();
return RedirectToAction("Index");
}
ViewBag.ParentDivision = new SelectList(db.Divisions, "DivisionId", "Name", division.ParentDivision.DivisionId);
return View(division);
}
В этом случае, когда я пытаюсь создать подразделение, которое принадлежит другой отдел, я получаю "В экземпляре объекта не задана ссылка на объект." ошибка.
Я также попытался изменить ViewBag так:
ViewBag.ParentDivision = new SelectList(db.Divisions, "ParentDivision.DivisionId", "Name", division.ParentDivision.DivisionId);
Здесь создается объект, но без родительского деления ...
Я действительно путают ... Если у кого-то есть идея ... Спасибо заранее.
Вы действительно имеете в виду «круговой»? то есть подразделение A владеет B, которому принадлежит A? Или вы имеете в виду «иерархический»? А владеет B, C, D; C владеет E, F и т. Д., Но он никогда не возвращается к A? –
@AdamBenson Да, извините, как вы говорите, это иерархический, а не круговой, спасибо – Pookye