Es gibt ein paar mögliche Optionen, die mir in den Sinn kommen:
- Richten Sie kaskadierende Löschungen in der Datenbank ein, damit eine Löschung immer erfolgreich ist.
- Überprüfen Sie vor dem Löschen mit SELECTs, ob zugehörige Datensätze vorhanden sind. Dies erfordert, dass die Anwendung die Einschränkungen kennt.
- Ein gutes Domänenmodell (Geschäftsklassen) sollte es der Anwendung ermöglichen, verwandte Datensätze zu erkennen.
- Ein O/R-Mapper wie NHibernate kann verwendet werden, um Kaskadenlöschvorgänge zu definieren.
- Verwenden Sie SMO (Microsoft.SqlServer.Smo), um das Datenbankschema auf Beziehungen zu untersuchen, und suchen Sie dann nach vorhandenen verwandten Datensätzen. Ich weiß nicht, ob das möglich ist.