Hay algunas opciones potenciales que vienen a la mente:
- Configure eliminaciones en cascada en la base de datos para que una eliminación siempre tenga éxito.
- Verifique los registros relacionados con SELECT antes de eliminarlos. Esto requiere que la aplicación tenga conocimiento de las restricciones.
- Un buen modelo de dominio (clases de negocio) debe permitir que la aplicación reconozca los registros relacionados.
- Se puede usar un O/R Mapper, como NHibernate, para definir operaciones de eliminación en cascada.
- Utilice SMO (Microsoft.SqlServer.Smo) para inspeccionar el esquema de la base de datos en busca de relaciones y, a continuación, verifique los registros relacionados existentes. No sé si eso es posible.