我在创建对象时遇到了问题。我的实体具有“分层”的一对多关系。一个部门可以属于另一个部门。 这里是我的实体: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部门拥有拥有A的B?或者你的意思是“等级”? A拥有B,C,D; C拥有E,F等,但它永远不会回到A? –
@AdamBenson对不起,正如你所说,这是分层次的,不是圆形的,谢谢 – Pookye