Я использую Entity Framework 4, и у меня есть отношение parent-child с установкой "Cascade Delete". Поэтому я ожидал бы, когда я удалю дочерний элемент из родителя, когда ребенок будет удален, когда я вызову SaveChanges().
cuRepository.Attach(_controlUnit);
foreach (var recipe in recipes) {
_controlUnit.Recipes.Remove(recipe);
//repository.DeleteObject(recipe);
}
Вместо этого я получаю сообщение об ошибке:
Исправлено System.InvalidOperationException Сообщение = Операция failed: отношения не могут быть изменены, поскольку один или несколько из свойства внешнего ключа не имеют значения NULL. Когда происходит изменение отношения, связанное свойство внешнего ключа устанавливается равным нулевому значению. Если внешний ключ не поддерживает нулевые значения, новая связь должен быть определен, для свойства внешнего ключа должно быть назначено другое ненулевое значение или не связанный с ним объект.
Когда я явно удаляю дочерние элементы (см. прокомментированную строку), все в порядке. Что мне не хватает?