Мягкое удаление в каскаде в NHibernate - PullRequest
4 голосов
/ 07 декабря 2009

Я пытаюсь сделать мягкое удаление, внедрив прослушиватель DeleteEvent

открытый класс MyDeleteEventListener: DefaultDeleteEventListener

{

protected override void DeleteEntity(IEventSource session, object entity, 

    EntityEntry entityEntry, bool isCascadeDeleteEnabled, 

    IEntityPersister persister, ISet transientEntities)

{

    if (entity is ISoftDeletable)

    {

        var e = (ISoftDeletable)entity;

        e.IsDeleted = true;



        CascadeBeforeDelete(session, persister, entity, entityEntry, transientEntities);

        CascadeAfterDelete(session, persister, entity, transientEntities);

    }

    else

    {

        base.DeleteEntity(session, entity, entityEntry, isCascadeDeleteEnabled,

                          persister, transientEntities);

    }

}

}

(https://web.archive.org/web/20090209010820/http://blogs.hibernatingrhinos.com/nhibernate/archive/2008/04/08/soft-deletes.aspx)

Но он не удаляет объекты из отношений один ко многим, ко многим. У кого-нибудь есть решение?

...