Ci sono alcune potenziali opzioni che mi vengono in mente:
- Imposta eliminazioni a catena nel database in modo che un'eliminazione riesca sempre.
- Controlla i record correlati con SELECT prima di eliminare. Ciò richiede che l'applicazione conosca i vincoli.
- Un buon modello di dominio (classi aziendali) dovrebbe consentire all'applicazione di essere a conoscenza dei record correlati.
- Un O/R Mapper, come NHibernate, può essere utilizzato per definire operazioni di eliminazione a cascata.
- Utilizzare SMO (Microsoft.SqlServer.Smo) per ispezionare lo schema del database per le relazioni, quindi verificare la presenza di record correlati esistenti. Non so se è possibile.