Entity Framework при каскаде удаления

У меня проблема с удалением связанных строк в Entity Framework 4.1. У меня есть таблицы с отношениями

Книга 1 <---> * BookFormats

Я установил каскад удаления:

ALTER TABLE [dbo].[BookFormats]  WITH CHECK ADD  CONSTRAINT [FK_BookFormats_Book] 
FOREIGN KEY([BookID]) REFERENCES [dbo].[Book] ([BookID]) on delete cascade

Свойство EDMX

enter image description here

Затем я хочу удалить все BokFormats элементов, связанных с моим объектом Книга :

 var originalBook = m.db.Book.First(x => x.BookID == bookId);
 originalBook.BookFormats.Clear();
 m.db.SaveChanges();

Но я получаю сообщение об ошибке:

Операция не удалась: связь не может быть изменена, потому что одно или несколько свойств внешнего ключа не допускают значения NULL. Когда изменяется отношение, связанное свойство внешнего ключа установить на нулевое значение. Если внешний ключ не поддерживает нулевые значения, должно быть определено новое отношение, свойство внешнего ключа должно быть присвоено другое ненулевое значение, или несвязанный объект должен быть удалено.

У меня закончились идеи, как удалить эти объекты. Есть идеи?

14
задан user2771704 19 October 2015 в 10:22
поделиться