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とそのリポジトリを通してすべての節約をするのはやめてください。

私は既にいとこのリストを保存しているので、エンティティはいとこにアイテムを持っています。

次にエンティティを保存したいときに、新しいカズンがある可能性があります。したがって、私は既存のいとこが消えて、新しいいとこの集まりのための場所を作りたいと思っています。

私はこれをやろうとしているが、私はこのエラーメッセージが発生します。

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

は、どのように私はNHibernateのは、毎回私はエンティティを保存カズンズを上書きすることができますか?また、これが悪い習慣であれば - そう言えば。あなたは、コレクションの参照を変更しているように見えます

答えて

3

、私はあなたがx.Clear()を行い、その後、あなたの入力のためのx.Add(someCousin)

+0

おかげで各要素を追加する必要があります

x.Cousings = new List<Cousin>()のようなものを作る意味します。私はIListをマッピングし、それをIEnumerableとして公開しました。 –

関連する問題