NHibernate ISession Flush: ¿Dónde y cuándo usarlo y por qué?
Una de las cosas que me confunden completamente es el uso desession.Flush
, en conjunción consession.Commit
ysession.Close
.
A vecessession.Close
funciona, por ejemplo, confirma todos los cambios que necesito. Sé que necesito usar commit cuando tengo una transacción, o una unidad de trabajo con varias creaciones / actualizaciones / eliminaciones, para poder elegir deshacer si ocurre un error.
Pero a veces la lógica detrás de mí me obstaculizasession.Flush
. He visto ejemplos donde tienes unsession.SaveOrUpdate()
seguido de una descarga, pero cuando elimino Flush funciona bien de todos modos. A veces me encuentro con errores en la declaración de Flush que dice que la sesión se agotó, y al eliminarla me aseguré de no encontrarme con ese error.
¿Alguien tiene una buena directriz sobre dónde o cuándo usar una descarga? He revisado la documentación de NHibernate para esto, pero todavía no puedo encontrar una respuesta directa.