У меня довольно простой вопрос относительно nHibernate, но я не смог найти ответ в Google.
Допустим, у меня есть сопоставленный объект Member
, который содержит внешний ключ 1: n для Mail
объектов.Я хотел бы получить текущую коллекцию почтовых отправлений для пользователя, когда он входит в свой почтовый ящик.Если я вызываю memberInstance.Mail
(типа IList <\ Mail>), он возвращает коллекцию почты, но не отражает новую почту, которая была добавлена, так как memberInstance сохраняется в кеше при входе в систему и не совершает туда-обратнов базу данных.Если я создаю RetrieveMailForUser
метод, передаю ему экземпляр Member, а затем вызываю код, такой как Session.CreateCriteria<Mail>
, я получаю текущую почту для любого данного члена и все, но кажется посторонним иметь коллекцию Mail в переменной Member, если я никогдаиспользовать его, а также иметь коллекцию в элементе var, которая не актуальна.Я мог бы обновлять участника каждый раз, когда пользователь проверяет свою входящую почту и сохранять ее в кеше, но это, похоже, требует много времени.Я чувствую, что мне не хватает некоторого основного принципа nHibernate.Пожалуйста помоги.Спасибо!
Код, который вызывает участника:
public static Member GetLoggedInUser()
{
var member = (Member) HttpContext.Current.Session[SESSION_NAME];
if(member != null &&
!NHibernateSessionManager.IsEntityAttachedToCurrentSession(member))
NHibernateSessionManager.AttachEntityToSession(member);
return member;
}
E