0
我有一個teacher
,它與students
有多對多的關係。現在,在Edit Teacher
方法中,我想先刪除他擁有的所有學生,然後添加選中的學生。從記錄中刪除所有子記錄
這是我的代碼:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Edit([Bind(Include = "Id,Name")] Teacher teacher, FormCollection form)
{
if (ModelState.IsValid)
{
teacher.Students.Clear();
var students = form["Students"];
foreach (string id in students.Split(','))
{
teacher.Students.Add(db.Students.Find(int.Parse(id)));
}
db.Entry(teacher).State = EntityState.Modified;
db.saveChanges();
}
}
除了問題是,所有的Teacher-Student
關係不被刪除。我究竟做錯了什麼?
但是,當我使用調試模式,我可以看到,老師對象有0名學生(我認爲,因爲他們沒有加載)。我如何加載學生然後逐個刪除它們? – user3182508
您可能正在清除副本而不是實體集本身。 –
但是從你的例子中,teacher.Students.ToList()是EMPTY,因爲它的模型是從發佈參數綁定的,而不是從數據庫加載的。那該怎麼辦呢? – user3182508