Якщо ви дійсно хочете скористатися видаленими, вам доведеться зробити свої зовнішні ключі нульовими, але тоді ви закінчитеся з осиротілими записами (що є однією з головних причин, коли ви не повинні робити це в першу чергу). Тому просто використовуйтеRemove()
ObjectContext.DeleteObject (сутність) позначає об'єкт видаленим у контексті. (Після цього видаляється EntityState.) Якщо після цього ви зателефонуєте SaveChanges, EF посилає в базу даних оператор SQL DELETE. Якщо жодні референтні обмеження в базі даних не порушені, сутність буде видалена, інакше буде викинуто виняток.
EntityCollection.Remove (childEntity) позначає видалені відносини між батьком та childEntity. Якщо ви самі видаляєте базу даних childEntity, і що саме відбувається при виклику SaveChanges, залежить від типу відносин між цими двома:
Варто зазначити, що налаштування .State = EntityState.Deleted
не запускає автоматично виявлені зміни. ( архів )