Bueno si falla el Delete probablemente es por: 1- Mal configurado NHibernate. 2- Problema de conexion 3- Integridad en los datos (i.e. integridad referencial).
En el primer caso al cliente no le va a interesar que quedo mal configurado NHibernet. En En el segundo caso no interesa si es en el Delete o en el final del Request. Y En el tercer caso si hay un problema de integridad de los datos (foreignKey violation, etc...) podria ser que: o tienes mal configurado NHibernate como en el primer caso, o te esta haciendo falta modelar alguna regla de negocio la cual informara inmediatamente a tu usuario que no se puede borrar evitando el error en la BD, o tu BD esta manejando tu logica de negocio y creo que NHibernate no encajaria tan bien en ese modelo. Con respecto a forzar el Flush, pues no es recomendable, NHibernate lo hace muy bien. Existe la opcion pero se usa para otros casos<http://nhforge.org/doc/nh/en/index.html#manipulatingdata-flushing>. Saludos, Nestor Andres Rodriguez 2011/9/25 Germán Schuager <[email protected]> > Buenas, me surgió el siguiente problema/duda en una aplicación ASP.NET MVC > en la cual estoy usando session-per-request y me gustaría saber como lo > manejan ustedes. > > Tengo algo similar a esto: > > public ActionResult Delete(int id) > { > try > { > dao.Delete(id); > return Json(null); > } > catch (Exception ex) > { > return Json(ex.Message); > } > } > > La idea es que si el Delete falla (por ej. por un problema de integridad > referencial), me llegue al cliente el mensaje de error. > El problema es que el Delete no va a fallar hasta que se haga el Flush de > la session actual, lo cual se realiza al final del request... fuera de la > ejecución del action en cuestión. > > La única forma que se me ocurrió de lograr lo que quiero, es hacer el Flush > (usando alguna abstracción) antes del "return Json(null)". > > Se me ocurre que esta misma situación se presenta ante un conflicto de > concurrencia. > > Como resuelven ustedes este tipo de cosas? > > -- > Para escribir al Grupo, hágalo a esta dirección: > [email protected] > Para más, visite: http://groups.google.com/group/NHibernate-Hispano -- Para escribir al Grupo, hágalo a esta dirección: [email protected] Para más, visite: http://groups.google.com/group/NHibernate-Hispano
