Не получается, что NHibernate Cascade Delete Orphan работает с Automapping - PullRequest
1 голос
/ 23 марта 2012

Попробовав несколько решений заставить 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

  • Добавлено автоматическое сопоставление, например:

    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 Ответ

3 голосов
/ 28 марта 2012

вы не указали deleteOrphan

map.HasMany(x => x.Domains).Inverse().Cascade.AllDeleteOrphan()
...