Агрегат NHibernate не загружается при получении списка - PullRequest
0 голосов
/ 03 марта 2011

У меня есть следующий класс

public class Room
{
  public virtual Guid Id { get; set }
  public virtual string Name { get; set }
  public virtual Guid LocId { get; set }
  public virtual Location Loc { get; set; }
}

Я запускаю транзакцию и вызываю Session.Save для новой сущности, и она правильно записывает ее в базу данных, но если я немедленно вызываю GetList (), список возвращается со свойством Loc, назначенным для всех сущностей, кроме новой сущности, но если я установлю Loc перед вызовом Save, он будет назначен для новой сущности. Flush () не решает проблему. Что мне не хватает, я бы предпочел не получать Местоположение, чтобы установить его.

Ответы [ 2 ]

0 голосов
/ 06 марта 2011

Отображение Loc и LocId является неправильным использованием NHibernate.

Используйте room.Location = session.Load<Location>(locId) для назначения местоположения.

0 голосов
/ 03 марта 2011

Вы можете использовать функцию Session.Evict, чтобы исключить ваш объект из сеанса, иначе он загрузит ваш объект в сеансе для данного идентификатора.Однако я настоятельно рекомендую удалить свойство LocId из сопоставления.

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