Exemple #1
0
        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));
        }
Exemple #3
0
 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));
     }
 }
Exemple #4
0
        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));
        }
Exemple #5
0
        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));
        }
Exemple #6
0
        public override object ResolveIdentifier(object value, ISessionImplementor session, object owner)
        {
            ObjectTypeCacheEntry holder = (ObjectTypeCacheEntry)value;

            return(ResolveAny(holder.EntityName, holder.Id, session));
        }
Exemple #7
0
        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));
        }