NHibernate - грязная ISession не обновляется - PullRequest
0 голосов
/ 14 июля 2010

При нажатии кнопки сохранения запускается следующий код [PersistenceSession - свойство, возвращающее экземпляр ISession]:

_storedWill = PersistenceSession.Load<StoredWill>(_storedWillId);
_storedWill.WillReference = txtWillReference.Text;
_storedWill.IntroducerReference = txtIntroducerReference.Text;
//A stack of other properties of the _storedWill object assigned
PersistenceSession.SaveOrUpdate(_storedWill);

Точка останова, установленная в последней строке, показывает, что PersistenceSession.IsDirty () имеет значение true.

Однако SQL обновления не генерируется. Кто-нибудь может подумать почему?

Спасибо

David

1 Ответ

1 голос
/ 14 июля 2010

Вам необходимо Flush сеанс, чтобы обновления отправлялись в базу данных. SaveOrUpdate не будет отправлять что-либо в базу данных, если вы не сохраните вновь созданную сущность, чьи значения идентификатора генерируются базой данных. Поскольку вы просто обновляете, все, что это делает, гарантирует, что сущность _storedWill связана с ISession, возвращаемым свойством PersistenceSession.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...