public void OnEvict(EvictEvent @event) { try { _defaultEvictEventListener.OnEvict(@event); } catch (Exception ex) { throw new InvalidOperationException("Error trying to evict: {0}".InvariantFormat(GetUsefulEntityName(@event.Entity, null, null)), ex); } }
public virtual void OnEvict(EvictEvent @event) { IEventSource source = @event.Session; object obj = @event.Entity; IPersistenceContext persistenceContext = source.PersistenceContext; if (obj is INHibernateProxy) { ILazyInitializer li = ((INHibernateProxy)obj).HibernateLazyInitializer; object id = li.Identifier; IEntityPersister persister = source.Factory.GetEntityPersister(li.EntityName); if (id == null) { throw new ArgumentException("null identifier"); } EntityKey key = new EntityKey(id, persister, source.EntityMode); persistenceContext.RemoveProxy(key); if (!li.IsUninitialized) { object entity = persistenceContext.RemoveEntity(key); if (entity != null) { EntityEntry e = @event.Session.PersistenceContext.RemoveEntry(entity); DoEvict(entity, key, e.Persister, @event.Session); } } li.Session = null; } else { EntityEntry e = persistenceContext.RemoveEntry(obj); if (e != null) { EntityKey key = new EntityKey(e.Id, e.Persister, source.EntityMode); persistenceContext.RemoveEntity(key); DoEvict(obj, key, e.Persister, source); } } }
public virtual void OnEvict(EvictEvent @event) { IEventSource source = @event.Session; object obj = @event.Entity; IPersistenceContext persistenceContext = source.PersistenceContext; if (obj is INHibernateProxy) { ILazyInitializer li = ((INHibernateProxy)obj).HibernateLazyInitializer; object id = li.Identifier; IEntityPersister persister = source.Factory.GetEntityPersister(li.EntityName); if (id == null) { throw new ArgumentException("null identifier"); } EntityKey key = new EntityKey(id, persister, source.EntityMode); persistenceContext.RemoveProxy(key); if (!li.IsUninitialized) { object entity = persistenceContext.RemoveEntity(key); if (entity != null) { EntityEntry e = @event.Session.PersistenceContext.RemoveEntry(entity); DoEvict(entity, key, e.Persister, @event.Session); } } li.Session = null; } else { EntityEntry e = persistenceContext.RemoveEntry(obj); if (e != null) { EntityKey key = new EntityKey(e.Id, e.Persister, source.EntityMode); persistenceContext.RemoveEntity(key); DoEvict(obj, key, e.Persister, source); } } }
public virtual async Task OnEvictAsync(EvictEvent @event, CancellationToken cancellationToken) { cancellationToken.ThrowIfCancellationRequested(); IEventSource source = @event.Session; object obj = @event.Entity; IPersistenceContext persistenceContext = source.PersistenceContext; if (obj.IsProxy()) { ILazyInitializer li = ((INHibernateProxy)obj).HibernateLazyInitializer; object id = li.Identifier; IEntityPersister persister = source.Factory.GetEntityPersister(li.EntityName); if (id == null) { throw new ArgumentException("null identifier"); } EntityKey key = source.GenerateEntityKey(id, persister); persistenceContext.RemoveProxy(key); if (!li.IsUninitialized) { object entity = persistenceContext.RemoveEntity(key); if (entity != null) { EntityEntry e = @event.Session.PersistenceContext.RemoveEntry(entity); await(DoEvictAsync(entity, key, e.Persister, @event.Session, cancellationToken)).ConfigureAwait(false); } } li.UnsetSession(); } else { EntityEntry e = persistenceContext.RemoveEntry(obj); if (e != null) { persistenceContext.RemoveEntity(e.EntityKey); await(DoEvictAsync(obj, e.EntityKey, e.Persister, source, cancellationToken)).ConfigureAwait(false); } } }
public void OnEvict(EvictEvent @event) { log.Debug("OnEvict :" + @event); }