首页 文章

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

提问于
浏览
0

我有以下课程

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保存它是为新实体分配的 . Flush()无法解决问题 . 我错过了什么,我宁愿不让位置设置它 .

2 回答

  • 0

    映射 LocLocId 是NHibernate的错误用法 .

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

  • 0

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

相关问题