Quelques options potentielles me viennent à l'esprit :
- Configurez des suppressions en cascade dans la base de données afin qu'une suppression réussisse toujours.
- Vérifiez les enregistrements associés avec des SELECT avant de les supprimer. Cela nécessite que l'application connaisse les contraintes.
- Un bon modèle de domaine (classes métier) doit permettre à l'application de connaître les enregistrements associés.
- Un mappeur O/R, tel que NHibernate, peut être utilisé pour définir des opérations de suppression en cascade.
- Utilisez SMO (Microsoft.SqlServer.Smo) pour inspecter le schéma de la base de données à la recherche de relations, puis recherchez les enregistrements associés existants. Je ne sais pas si c'est possible.