Я немного смущен тем, как работает Flush (и NHibernate.ISession) в NHibernate.
Из моего кода кажется, что когда я сохранил объект с помощью ISession.Save(entity), объект можно сохранить непосредственно в базе данных.
Однако при обновлении и объекте с использованием ISession.SaveOrUpdate(entity) или ISession.Update(entity) объект в базе данных не обновляется --- мне нужно вызвать ISession.Flush, чтобы его обновить.
Процедура обновления объекта следующая:
- Получить объект из базы данных с помощью
ISession.Get(typeof(T), id) - Измените свойство объекта, например
myCar.Color="Green" - Верните его в базу данных с помощью
ISession.Update(myCar)
myCar не обновляется в базе данных. Однако, если я затем назову ISession.Flush, то он будет обновлен.
Когда использовать Flush и когда не использовать его?