2010-11-25 47 views
6

使用無狀態會話批量插入包含其他實體集合(HasMany映射)的實體的正確方法是什麼?使用NHibernate StatelessSession級聯集合

E.g.父類映射如下:

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列不作爲可寫入的屬性存在。

我錯過了什麼嗎?

回答

5

您必須在子類中創建Parent屬性,或者使用有狀態會話。