En mi proyecto actual, utilizamos Entity Framework y, en este contexto, almacenamos datos procedentes de un sistema remoto. Cuando intento guardar objetos, necesito saber de manera confiable si una excepción es algo de lo que se puede recuperar o no.Marco de entidad: cómo detectar excepciones recuperables frente a irrecuperables
Para aclarar, por "recuperado de" quiero decir que simplemente intentar la operación nuevamente un poco más tarde sería seguro y podría tener éxito. Esto incluiría problemas con la conectividad de red, reinicio del servidor de base de datos o situaciones similares.
No recuperable en este contexto sería básicamente cualquier otra cosa, incluidas las restricciones de integridad y los errores internos de Entity Framework (la base de datos no está sincronizada con el modelo EF). Se podría argumentar que algunas restricciones de integridad podrían recuperarse si alguien "corrige" los datos, pero en este caso solo habrá un solo escritor.
¿Existe una manera confiable de categorizar una excepción proveniente de Entity Framework en una de estas dos categorías?
Incluso encontrar la lista de excepciones y descubrir cuándo pueden arrojarse es una tarea no trivial. Lo estoy haciendo, pero esperaba que alguien más lo hubiera hecho antes ... – SoftMemes