Det finns några möjliga alternativ som du tänker på:
- Ställ in överlappande borttagningar i databasen så att en radering alltid kommer att lyckas.
- Sök efter relaterade poster med SELECT innan du tar bort. Detta kräver att applikationen har kunskap om begränsningarna.
- En bra domänmodell (företagsklasser) bör göra det möjligt för applikationen att vara medveten om relaterade uppgifter.
- En O/R Mapper, som NHibernate, kan användas för att definiera kaskadraderingsoperationer.
- Använd SMO (Microsoft.SqlServer.Smo) för att inspektera databasschemat för relationer, kontrollera sedan efter befintliga relaterade poster. Jag vet inte om det är möjligt.