2011-01-29 52 views
1

如果我想手動刪除對象和它所有的孩子, 我該怎麼辦呢(我不希望使用級聯刪除)手動刪除對象樹在實體框架

當我'試圖迭代子列表 - 我得到一個異常,因爲我正在改變foreach內的集合 - 這是一個問題...任何其他方式來做到這一點? (我將每個時間狀態設置爲刪除)。

var myAssignemnt = (from s in context.Assignments.Include("ActivityInAssignments").Where(s => s.AssignmentID == AssignmentID) select s).FirstOrDefault(); 

foreach (ActivityInAssignment acc in myAssignemnt.ActivityInAssignments) 
{ 
    context.ObjectStateManager.ChangeObjectState(acc, System.Data.EntityState.Deleted); 
} 
context.ObjectStateManager.ChangeObjectState(myAssignemnt, System.Data.EntityState.Deleted); 
context.SaveChanges(); 

回答

2

也許嘗試... in myAssignemnt.ActivityInAssignments.ToList()

+0

,你便又是:-)(接受5分鐘...) – Dani 2011-01-29 19:00:49