public override Task <object> AssembleAsync(object cached, ISessionImplementor session, object owner, CancellationToken cancellationToken) { if (cancellationToken.IsCancellationRequested) { return(Task.FromCanceled <object>(cancellationToken)); } ObjectTypeCacheEntry e = cached as ObjectTypeCacheEntry; return((e == null) ? Task.FromResult <object>(null): session.InternalLoadAsync(e.entityName, e.id, false, false, cancellationToken)); }
public override bool IsModified(object old, object current, ISessionImplementor session) { if (current == null) { return(old != null); } if (old == null) { return(current != null); } ObjectTypeCacheEntry holder = (ObjectTypeCacheEntry)old; return(holder.clazz != NHibernateProxyHelper.GuessClass(current) || identifierType.IsModified(holder.id, Id(current, session), session)); }
public override Task <object> ResolveIdentifierAsync(object value, ISessionImplementor session, object owner, CancellationToken cancellationToken) { if (cancellationToken.IsCancellationRequested) { return(Task.FromCanceled <object>(cancellationToken)); } try { ObjectTypeCacheEntry holder = (ObjectTypeCacheEntry)value; return(ResolveAnyAsync(holder.entityName, holder.id, session, cancellationToken)); } catch (Exception ex) { return(Task.FromException <object>(ex)); } }
public override bool IsModified(object old, object current, bool[] checkable, ISessionImplementor session) { if (current == null) { return(old != null); } if (old == null) { return(current != null); } ObjectTypeCacheEntry holder = (ObjectTypeCacheEntry)old; bool[] idcheckable = new bool[checkable.Length - 1]; Array.Copy(checkable, 1, idcheckable, 0, idcheckable.Length); return((checkable[0] && !holder.entityName.Equals(session.BestGuessEntityName(current))) || identifierType.IsModified(holder.id, Id(current, session), idcheckable, session)); }
public override async Task <bool> IsModifiedAsync(object old, object current, bool[] checkable, ISessionImplementor session, CancellationToken cancellationToken) { cancellationToken.ThrowIfCancellationRequested(); if (current == null) { return(old != null); } if (old == null) { return(current != null); } ObjectTypeCacheEntry holder = (ObjectTypeCacheEntry)old; bool[] idcheckable = new bool[checkable.Length - 1]; Array.Copy(checkable, 1, idcheckable, 0, idcheckable.Length); return((checkable[0] && !holder.entityName.Equals(session.BestGuessEntityName(current))) || await(identifierType.IsModifiedAsync(holder.id, await(IdAsync(current, session, cancellationToken)).ConfigureAwait(false), idcheckable, session, cancellationToken)).ConfigureAwait(false)); }
public override object ResolveIdentifier(object value, ISessionImplementor session, object owner) { ObjectTypeCacheEntry holder = (ObjectTypeCacheEntry)value; return(ResolveAny(holder.EntityName, holder.Id, session)); }
public override object Assemble(object cached, ISessionImplementor session, object owner) { ObjectTypeCacheEntry e = cached as ObjectTypeCacheEntry; return((e == null) ? null : session.InternalLoad(e.entityName, e.id, false, false)); }
public override object Assemble(object cached, ISessionImplementor session, object owner) { ObjectTypeCacheEntry e = ( ObjectTypeCacheEntry )cached; return((cached == null) ? null : session.Load(e.clazz, e.id)); }