Другие ребята уже предоставили ценные ответы, поэтому вы должны выбрать один из них в качестве принятых ответов.
Я просто добавляю это как ответ, потому что это слишком долго для комментария.Обычно этого можно достичь четырьмя способами:
Casade delete, как описано в @ p.campbell.Важно определить ON CASCADE DELETE для отношения в базе данных, а также Cascade
для отношения в конструкторе EF. Здесь является причиной, по которой опция должна быть установлена с обеих сторон.
Хранимая процедура, как описано @Bilgehan.На всякий случай хранимой процедуры удалите потомки перед родителем.Вы можете фактически выполнить SQL напрямую с помощью ExecuteStoreCommand
.
Идентифицирующее отношение - это одно из самых странных решений для архитекторов в EF.Это требует, чтобы дочерняя сущность имела составной ключ от своего уникального идентификатора и FK до родительского.Если это произойдет, вы можете просто позвонить vendor.VendorPriceBreaks.Clear()
, и он не только удалит отношения, но и удалит дочерние элементы.Недостатком является то, что связанные объекты должны быть загружены из базы данных.
Ручное удаление связанных объектов, как описано @Slauma.Если у вас нет каскадного удаления, хранимой процедуры или идентифицирующего отношения, другого способа нет, чем загрузить связанные объекты и удалить их один за другим.