Esempio n. 1
0
        public async Task <object> LoadAsync(object id, object optionalObject, LockMode lockMode, ISessionImplementor session, CancellationToken cancellationToken)
        {
            // fails when optional object is supplied
            Custom clone = null;
            Custom obj   = (Custom)Instances[id];

            if (obj != null)
            {
                clone = (Custom)obj.Clone();
                TwoPhaseLoad.AddUninitializedEntity(session.GenerateEntityKey(id, this), clone, this, LockMode.None, session);
                TwoPhaseLoad.PostHydrate(this, id, new String[] { obj.Name }, null, clone, LockMode.None, session);
                await(TwoPhaseLoad.InitializeEntityAsync(clone, false, session, new PreLoadEvent((IEventSource)session),
                                                         new PostLoadEvent((IEventSource)session), cancellationToken));
            }
            return(clone);
        }
Esempio n. 2
0
        public object Load(object id, object optionalObject, LockMode lockMode, ISessionImplementor session)
        {
            // fails when optional object is supplied
            Custom clone = null;
            Custom obj   = (Custom)Instances[id];

            if (obj != null)
            {
                clone = (Custom)obj.Clone();
                TwoPhaseLoad.AddUninitializedEntity(new EntityKey(id, this, session.EntityMode), clone, this, LockMode.None, false,
                                                    session);
                TwoPhaseLoad.PostHydrate(this, id, new String[] { obj.Name }, null, clone, LockMode.None, false, session);
                TwoPhaseLoad.InitializeEntity(clone, false, session, new PreLoadEvent((IEventSource)session),
                                              new PostLoadEvent((IEventSource)session));
            }
            return(clone);
        }