NHibernate 1-го уровня кэш, когда элемент добавляется в коллекцию HasMany - PullRequest
0 голосов
/ 17 ноября 2010

Я создаю новый объект, добавляя в коллекцию HasMany ДРУГОЙ объект в NHibernate.

Когда я отправляю запрос на этот объект непосредственно в том же сеансе, он является нулевым. Как я могу сохранить дочерний объект в коллекции HasMany в кэше 1-го уровня. У меня проблема в том, что мне нужно получить объект и поработать над ним, прежде чем все будет зафиксировано.

 HasMany(x => x.BehavioralEvents)
     .AsBag()
     .Cascade.SaveUpdate()
     .Inverse()
     .KeyColumn("StudentCaseId")
     .LazyLoad();

BehavioralEvents - это IList, и мне нужно запросить его прямо в том же сеансе:

session.Get<BehavioralEvent>(id);

1 Ответ

1 голос
/ 17 ноября 2010

Вам нужно сохранить новый объект, чтобы сделать его постоянным, а не полагаться на настройки каскада из родительского объекта.Каскад не будет происходить до тех пор, пока сеанс не будет сброшен.Я предполагаю, что вы назначаете идентификатор самостоятельно, а не используете сгенерированный идентификатор.

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