代码之家  ›  专栏  ›  技术社区  ›  vgru

使用NHibernate无状态会话层叠集合

  •  7
  • vgru  · 技术社区  · 14 年前

    如何正确地批量插入包含其他实体集合的实体(a HasMany 映射),使用无状态会话?

    例如,父类映射如下:

    class ParentMap : ClassMap<Parent>
    {
        public ParentMap()
        {
            Id(x => x.Id)
               .GeneratedBy.Increment();
    
            HasMany(x => x.ChildNodes)
               .KeyColumns.Add("Parent_id")
               .Cascade.All();
        }  
    }
    

    无状态会话忽略Cascade选项,因此子节点不会自动持久化。我可以自己遍历集合,但无法设置关系,因为 Parent_id 列不存在作为我可以写入的属性。

    我遗漏了什么吗?

    1 回复  |  直到 14 年前
        1
  •  6
  •   Diego Mijelshon    14 年前

    你要么创建 Parent 属性,或使用有状态会话。