private static bool HandleEndEnlist(IAsyncResult result)
 {
     PersistenceContext.ReleaseAsyncResult asyncState = (PersistenceContext.ReleaseAsyncResult)result.AsyncState;
     asyncState.persistenceContext.EndEnlist(result);
     if (!asyncState.persistenceContext.ScheduleDetach())
     {
         asyncState.persistenceContext.directory.RemoveInstance(asyncState.persistenceContext);
     }
     foreach (InstanceKey key in asyncState.persistenceContext.keysToAssociate)
     {
         asyncState.persistenceContext.AssociatedKeys.Remove(key);
     }
     asyncState.persistenceContext.keysToAssociate.Clear();
     asyncState.persistenceContext.keysToDisassociate.Clear();
     return(true);
 }
 private static bool HandleEndExecute(IAsyncResult result)
 {
     PersistenceContext.ReleaseAsyncResult asyncState = (PersistenceContext.ReleaseAsyncResult)result.AsyncState;
     asyncState.persistenceContext.store.EndExecute(result);
     return(asyncState.AfterUnlock());
 }