2016-06-21 12 views
0

Ich verwende Code zuerst für mein Projekt mit SQL Server. Ich habe 2 Klassenmodelle, von denen eines das andere erbt. und ich habe dbsets für die Basisklasse und ihre geerbte Klasse. Die Basisklasse enthält einige Datensätze, die ich entfernen möchte. Ich möchte, dass der relevante Datensatz entfernt wird und auch sein geerbter Datensatz. Kann mir jemand helfen, wie es geht? TYCode erste Kaskade löschen mit Vererbung

+0

Mit der Vererbung löschen Sie immer nur eine Entität, und EF löscht die entsprechenden Datensätze abhängig von der gewählten Vererbungsstrategie. –

Antwort

0

Cascade löschen bedeutet, dass Sie die verwandten Zeilen aus anderen Tabellen entfernen möchten. Das ist etwas anderes als das, was du willst.

Die unten aufgeführten Ansätze gegeben, Ihr Problem zu lösen helfen:

1) Sie können SQL-Trigger todo verwenden, die: SQL Server ON DELETE Trigger Ihren SQL-Trigger auf Löschen definieren und diese Trigger werden die dazugehörigen Reihen

entfernt

2) Sie SqlDependency https://msdn.microsoft.com/de-de/library/62xk7953(v=vs.110).aspx Same als Trigger verwenden können, aber in C#

3) Sie können IDbCommandTreeInterceptor verwenden: http://www.codeguru.com/csharp/csharp/soft-deleting-entities-cleanly-using-entity-framework-6-interceptors.html die Abfrage ändern, bevor Sie es an die SQ gesendet L Server

Meine Empfehlung für Sie einfach halten Sie es einfach. Verwenden Sie das Wiederholungsmuster und durch Löschen wenden Sie Ihre Löschregeln manuell an (suchen Sie die zugehörigen Entitäten und löschen Sie diese)

Verwandte Themen