Estoy tratando de utilizar NHibernate con entidades heredadas que no están mapeadas con NHibernate. En ocasiones, esto significa que debo lavar manualmente los datos de NHibernate a la base de datos para no recibir excepciones de clave externa cuando intento conectar las entidades heredadas con entidades asignadas a NHibernate.Limpiar NHibernate al tiempo que permite la reversión de transacción
Ocurre un problema cuando esto tiene lugar dentro de una transacción que luego debe revertirse. Los datos eliminados de NHibernate no se revierten.
¿Hay algo que pueda hacer al respecto?
ACTUALIZACIÓN
Aún curioso cómo hacer esto - no creo que ninguna de las respuestas dadas abordar la cuestión. Necesito llamar a Flush(). La pregunta es, ¿cómo revertir los datos que se han limpiado?
Háganme saber por qué baja la votación? Las respuestas actuales son buenas, pero no resuelven el problema. Necesito poder ir a la base de datos para que las consultas administradas que no son de NHibernate puedan acceder a los datos que se han actualizado en un NHibernate. Si no puedo llamar al color, ¿de qué otro modo pueden las consultas administradas que no son de NHibernate acceder a los datos? Imagínese, haciendo esto usted mismo con simples llamadas System.Data.SqlClient, sería bastante simple: envuelva un montón de llamadas SqlCommand.ExecuteUpdate() en un TransactionScope y eso es todo. Puede anidar transacciones, retrotraerlas, etc. y todo se comportaría como se esperaba. – cbp