Я сейчас использую NHibernate v5.2, и вот моя реализация IPreDeleteEventListener
, но я все еще вижу, что она не обновила базу данных после того, как я запустил свой код.Любые решения?Заранее спасибо
public class SoftDeleteEventListener : IPreDeleteEventListener
{
public bool OnPreDelete(PreDeleteEvent @event)
{
var softDeletable = @event.Entity as ISoftDeletable;
if (softDeletable != null)
{
EntityEntry entry = @event.Session.GetSessionImplementation().PersistenceContext
.GetEntry(@event.Entity);
entry.Status = Status.Loaded;
// Thats the property i need to change
softDeletable.IsDeleted = true;
Object id = @event.Persister.GetIdentifier(@event.Entity);
Object[] fields = @event.Persister.GetPropertyValues(@event.Entity);
Object version = @event.Persister.GetVersion(@event.Entity);
@event.Persister.Update(id, fields, new Int32[1], false, fields, version,
@event.Entity, null, @event.Session.GetSessionImplementation());
return true;
}
return false;
}
public Task<bool> OnPreDeleteAsync(PreDeleteEvent @event,
CancellationToken cancellationToken)
{
throw new System.NotImplementedException();
}
}