У меня есть две сущности, имеющие отношение один ко многим, и это Пользователь и Адрес. Один пользователь может иметь много адресов. Я использую один сеанс и транзакцию для каждого шаблона HTTP-запроса, и кэш 1-го уровня включен. По какой-то причине я вижу, что мои лениво загруженные коллекции не заботятся об изменениях, внесенных в данные. Например, если я создаю один объект пользователя. Затем я создаю два объекта адреса и сохраняю их как
User u1 = CreateNewUser("olduser@xyz.tld", "olduser@xyz.tld");
u1.Save();
Address a1 = CreateNewAddress(u1, "olduser@xyz.tld", "Old1", "User1");
a1.Save();
Address a2 = CreateNewAddress(u1, "olduser@xyz.tld", "Old1", "User1");
a2.Save();
Session.Flush();
Assert.AreEqual(2, u1.Addresses.Count); // THIS IS FAILING BECAUSE COUNT IS 0
Теперь, когда я выполняю assert, я ожидаю, что пользовательский объект будет лениво загружать два адреса и число должно быть 2, но он возвращает 0. Если я просто выбрасываю полный кеш, выполняя вызов Session.Clear (), который тоже не работает. Но если я выбрасываю полный кеш, выполняя Session.Clear (), а затем снова загружаю свой пользовательский объект, он работает, как и ожидалось. Я не уверен, что мне чего-то не хватает или что-то еще не хватает в конфигурациях настройки кэша NHibernate. Любая помощь будет оценена.
Спасибо