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); }
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); }