Не получается NHibernate Cascade Delete Orphan, работающий с Automapping
Перепробовав несколько решений, чтобы получить NHibernate, чтобы удалить потерянные записи. Учитывая следующую структуру:
public class Parent {
public virtual ICollection<Domain> Domains {get;set;}
}
public class Domain{
public virtual Parent Parent {get;set;}
}
ОБНОВЛЕНИЕ: Это не имело никакого отношения к сеттеру. Это вызвало что-то другое, что было исправлено. Но удаления сирот по-прежнему не происходит, я попробовал следующее:
Добавьте атрибут в Домены (и в свойство Parent класса Domain) в соответствии с http://mookid.dk/oncode/archives/643
Добавлен Automapping как:
AutoMap.Override<Parent>(map => { map.HasMany(x => x.Domains).Inverse().Cascade.All(); }) AutoMap.Override<Parent>(map => { map.HasMany(x => x.Domains).Cascade.All(); })
Обе записи привели к тому, что записи домена были сохранены с Parent_Id = null
Есть ли хороший пример того, как этого добиться в сочетании с Automapping?
1 ответ
Решение
Вы не указали deleteOrphan
map.HasMany(x => x.Domains).Inverse().Cascade.AllDeleteOrphan()