Вручную удалить дерево объектов в Entity-Framework - PullRequest
1 голос
/ 29 января 2011

Если я хочу вручную удалить объект и все его дочерние элементы, Как я могу это сделать (я не хочу использовать cascade-delete)

Когда я пытаюсь перебрать список детей - я получаю исключение, потому что я изменяю коллекцию внутри 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();

1 Ответ

2 голосов
/ 29 января 2011

Может быть, попробовать ... in myAssignemnt.ActivityInAssignments.ToList()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...