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