Я пытаюсь сделать мягкое удаление, внедрив прослушиватель 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)
Но он не удаляет объекты из отношений один ко многим, ко многим. У кого-нибудь есть решение?