Вы не удаляете BookFormats
из базы данных, но удаляете связь, тем самым изменяя свой BookFormats
и устанавливая для столбца BookID
значение NULL .Каскад удаления, который вы поместили в базу данных, гласит: When I delete the
Книга , then delete all of the
BookFormats that have a
BookID equal to mine.
Вы не удаляете книгу, а удаляете форматы из Book
.
вместоoriginalBook.BookFormats.Clear()
у вас должно быть что-то вроде этого ...
List<int> idsToDelete = new List<int>();
foreach (BookFormat bf in originalBook.BookFormats)
{
idsToDelete.Add(bf.ID);
}
foreach (int id in idsToDelete)
{
BookFormat format = m.db.BookFormat.FirstOrDefault(x => x.ID == id);
if (format != null)
{
m.db.DeleteBookFormat(format);
}
}
m.db.SaveChanges();
Это должно быть что-то в этом роде.У меня нет права вспомнить, как EF создает метод удаления в EDMX.