2016-06-21 5 views
0

Я использую код для моего проекта, используя sql-сервер. У меня есть 2 модели классов, которые наследуют другую. и у меня есть dbsets для базового класса и его унаследованного класса. Базовый класс содержит некоторую запись, которую я хочу удалить. Я хочу удалить соответствующую запись, а также ее унаследованную запись. Кто-нибудь может мне помочь, как это сделать? TYКод первого каскадного удаления с использованием наследования

+0

С наследованием вы всегда удаляете только одно сущность, а EF удаляет соответствующие записи в зависимости от выбранной стратегии наследования. –

ответ

0

Cascade delete term означает, что вы хотите удалить связанные строки из других таблиц. Это нечто отличное от того, что вы хотите.

Данный ниже перечисленных подходов может помочь вам решить вашу проблему:

1) Вы можете использовать SQL триггер TODO, что: SQL Server ON DELETE Trigger Определить триггер SQL на удаление, и это триггер удаляет соответствующие строки

2) вы можете использовать SqlDependency https://msdn.microsoft.com/de-de/library/62xk7953(v=vs.110).aspx То же, что триггер, но в C#

3) вы можете использовать IDbCommandTreeInterceptor: http://www.codeguru.com/csharp/csharp/soft-deleting-entities-cleanly-using-entity-framework-6-interceptors.html Измените запрос, прежде чем вы послали его к SQ L Сервер

Моя рекомендация для вас просто держите его простым. Используйте шаблон Repostiory и Delete примените свои правила удаления вручную (найдите связанные объекты и удалите их)