1

覆蓋數據可以說我有一個類:讓NHibernate的在收集

public class Entity 
{ 
    ... 
    public IEnumerable<Cousin> Cousins { get; set; } 
} 

...我已經映射它...

public class EntityMap : ClassMap<Entity> 
{ 
    public EntityMap() 
    { 
    ... 
    HasMany(x => x.Cousins).Cascade.AllDeleteOrphan(); 
    } 
} 

表哥沒有儲存庫的擁有(至少不是現在)。我不想通過Entity及其存儲庫來完成所有節省。

我已經存儲了一個表兄弟列表,所以實體在Cousins中有物品。

下次我想要保存實體時,可能會有新的表兄弟。因此,我希望現有的表兄弟消失併爲新的表兄弟集合騰出空間。

我想這樣做,但我會遇到這樣的錯誤消息:

A collection with cascade="all-delete-orphan" was no longer referenced by the owning entity instance: Cousins 

我怎樣才能讓NHibernate的覆蓋辛斯每次我救實體?此外,如果這是不好的做法 - 這樣說。

回答

3

看起來你正在改變集合的參考,我的意思是讓像x.Cousings = new List<Cousin>()

你應該做x.Clear(),然後用x.Add(someCousin)

+0

感謝您的輸入添加的每個元素。我結束了映射IList並將其作爲IEnumerable公開。 – 2012-04-14 12:31:00