获取列表时,NHibernate聚合不加载

时间:2011-03-03 18:21:36

标签: nhibernate

我有以下课程

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属性,但如果我在调用Save之前设置了Loc,则会为新实体分配。 Flush()无法解决问题。我错过了什么,我宁愿不让位置设置它。

2 个答案:

答案 0 :(得分:0)

您可以使用Session.Evict函数从会话中逐出您的对象,否则它将加载您在会话对象中的给定ID。但是,我强烈建议您从映射中删除LocId属性。

答案 1 :(得分:0)

映射LocLocId是NHibernate的错误用法。

使用room.Location = session.Load<Location>(locId)分配位置。