Ejemplo n.º 1
0
        /// <summary>
        /// Close the collection
        /// </summary>
        public override void Close()
        {
            if (!IsOpen)
            {
                return;
            }
            RemoveDeletedDataBlocks();
            HintSequentialRead = false;
            base.Close();
            if (DataSet != null)
            {
                DataSet.Close();
            }
            KeySet.Close();
            SetCurrentItemAddress(-1, 0);

            if (!IsCloned)
            {
                RootNode.Dispose();
            }
            RootNode         = null;
            currentDataBlock = null;
            currentEntry     = null;

            if (IsCloned || Transaction == null)
            {
                return;
            }
            // remove this collection from being processed in Transaction Commit (as was fully flushed and stream was closed).
            ((Transaction.Transaction)Transaction).TrackModification(this, true);

            DisposeCachedItems();
        }