2016-06-21 3 views
0

J'utilise le code d'abord pour mon projet utilisant sql server. J'ai 2 modèles de classe dont l'un hérite de l'autre. et j'ai des dbsets pour la classe de base et sa classe héritée. La classe de base contient un enregistrement que je veux supprimer. Je veux que l'enregistrement pertinent soit supprimé et aussi son enregistrement hérité. Quelqu'un peut-il m'aider avec comment le faire? TYCode première cascade supprimer en utilisant l'héritage

+0

Avec l'héritage, vous supprimez toujours une seule entité et EF supprime les enregistrements appropriés en fonction de la stratégie d'héritage que vous avez choisie. –

Répondre

0

Le terme de suppression en cascade signifie que vous souhaitez supprimer les lignes associées des autres tables. C'est quelque chose de différent de ce que vous voulez.

Les données ci-dessous les approches énumérées peuvent vous aider à résoudre votre problème:

1) Vous pouvez utiliser todo déclencheur SQL: SQL Server ON DELETE Trigger Définir votre déclencheur SQL sur supprimer et ce déclencheur supprime les lignes liées

2) vous pouvez utiliser SqlDependency https://msdn.microsoft.com/de-de/library/62xk7953(v=vs.110).aspx comme déclencheur, mais en C#

3) vous pouvez utiliser IDbCommandTreeInterceptor: http://www.codeguru.com/csharp/csharp/soft-deleting-entities-cleanly-using-entity-framework-6-interceptors.html Modifier la requête avant que vous l'avez envoyé à la SQ L Server

Ma recommandation pour vous juste rester simple. Utilisez le modèle Repostiory et supprimez les règles de suppression manuellement (recherchez les entités associées et supprimez-les)