Ich habe eine Klasse, die eine Liste von einer abstrakten Klasse hat:NHibernate nicht löschen Waisen auf Update
public class Foo
{
public int Id { get; set; }
public IList<Bar> Bars { get; set; }
}
public abstract class Bar
{
public int Id { get; set; }
}
ich die Bars als solche kartiert:
HasMany(f => f.Bars).Cascade.AllDeleteOrphans();
Jedoch, wenn ich ein Update Foo
zum Entfernen einer Bar
löscht es nicht die verwaisten, aber es setzt Foo_id
Spalte Bar?
las ich um und sah, Antworten auf die inverse sagen die HasMany
so habe ich versucht:
HasMany(f => f.Bars)
.Inverse()
.Cascade.AllDeleteOrphans();
Aber dann, wenn die Bar
Spar hatte immer NULL
als Foo_id
. Dies war auch der Fall, wenn ich das Hinzufügen versuchte, ein KeyColumn
:
HasMany(f => f.Bars)
.Inverse()
.KeyColumn("Foo_id")
.Cascade.AllDeleteOrphans();
zeigen Sie mir den Code, den Sie verwenden, um eine Bar zu entfernen –