1

Lets sagen, dass ich eine Klasse:NHibernate Sammlung in Daten überschreiben Stellen

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

... und ich habe es kartiert ...

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

Cousin kein Endlager hat seine eigene (zumindest nicht für jetzt). Ich möchte alle Einsparungen durch Entity und dessen Repository machen.

Ich habe bereits eine Liste von Cousins ​​gespeichert, so dass die Entität Elemente in Cousins ​​hat.

Das nächste Mal, wenn ich Entity speichern möchte, könnte es neue Cousins ​​haben. Deshalb möchte ich die bestehenden Cousins ​​verschwinden lassen und Platz für die neue Cousinsammlung schaffen.

Ich versuche, dies zu tun, aber ich treffe diese Fehlermeldung:

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

Wie kann ich NHibernate Cousins ​​überschreiben jedes Mal wenn ich Entity speichern? Auch wenn das eine schlechte Übung ist - sagen Sie es.

Antwort

3

Es sieht aus wie Sie die Referenz der Sammlung ändern sich, meine, dass ich so etwas wie x.Cousings = new List<Cousin>()

Sie x.Clear() tun sollten, und dann jedes Element hinzufügen mit x.Add(someCousin)

+0

Dank für Ihre Eingabe. Ich habe eine IList zugeordnet und sie als IEnumerable verfügbar gemacht. –

Verwandte Themen