Не получается 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()
Другие вопросы по тегам