c # Реализация IPreDeleteEventListener - PullRequest
0 голосов
/ 13 февраля 2019

Я сейчас использую 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();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...