protected object ReadElementByIndex(object index)
 {
     if (!initialized)
     {
         ThrowLazyInitializationExceptionIfNotConnected();
         CollectionEntry      entry     = session.PersistenceContext.GetCollectionEntry(this);
         ICollectionPersister persister = entry.LoadedPersister;
         if (persister.IsExtraLazy)
         {
             if (HasQueuedOperations)
             {
                 session.Flush();
             }
             return(persister.GetElementByIndex(entry.LoadedKey, index, session, owner));
         }
     }
     Read();
     return(Unknown);
 }