Estoy un poco confundido sobre cómo funciona Flush
(y NHibernate.ISession
) en NHibernate.NHibernate Flush-- ¿Cómo funciona?
Desde mi código, parece que cuando guardé un objeto usando ISession.Save(entity)
, el objeto se puede guardar directamente en la base de datos.
Sin embargo, cuando actualizo y me opongo usando ISession.SaveOrUpdate(entity)
o ISession.Update(entity)
, el objeto en la base de datos no se actualiza --- Necesito llamar al ISession.Flush
para actualizarlo.
El procedimiento de cómo puedo actualizar el objeto es el siguiente:
- obtener el objeto de la base de datos mediante el uso de
ISession.Get(typeof(T), id)
- Cambiar la propiedad del objeto, por ejemplo,
myCar.Color="Green"
- cometerlo de nuevo a la base de datos mediante el uso de
ISession.Update(myCar)
el myCar
no se actualiza la base de datos. Sin embargo, si llamo después al ISession.Flush
, entonces se actualiza.
Cuándo utilizar Flush
, y cuándo no utilizarlo?
posible duplicado de [NHibernate ISession Flush: dónde y cuándo usarlo, y por qué?] (Http://stackoverflow.com/questions/43320/nhibernate-isession-flush-where-and-when-to -use-it-and-why) – sleske