У меня есть класс, который имеет список абстрактного класса:NHibernate не удаляя сирот на обновление
public class Foo
{
public int Id { get; set; }
public IList<Bar> Bars { get; set; }
}
public abstract class Bar
{
public int Id { get; set; }
}
Я очерчен Bars как таковой:
HasMany(f => f.Bars).Cascade.AllDeleteOrphans();
Однако, когда я обновлю Foo
, чтобы удалить Bar
, он не удаляет сироту, но он устанавливает столбец Foo_id
Bar на NULL
?
Я прочитал и увидел ответы, говоря, чтобы инвертировать HasMany
поэтому я попытался:
HasMany(f => f.Bars)
.Inverse()
.Cascade.AllDeleteOrphans();
Но тогда при сохранении Bar
всегда NULL
как Foo_id
. Это был также случай, когда я попытался добавить KeyColumn
:
HasMany(f => f.Bars)
.Inverse()
.KeyColumn("Foo_id")
.Cascade.AllDeleteOrphans();
показать код, который используется для удаления бара –