public virtual void Dispose()
        {
            if (isDisposed)
            {
                return;
            }

            isDisposed = true;

            if (defaultPersistenceEngine != null)
            {
                defaultPersistenceEngine.Dispose();
            }

            if (objectRelationalPersistenceEngine != null)
            {
                objectRelationalPersistenceEngine.Dispose();
            }

            if (objectDocumentPersistenceEngine != null)
            {
                objectDocumentPersistenceEngine.Dispose();
            }

            if (objectObjectPersistenceEngine != null)
            {
                objectObjectPersistenceEngine.Dispose();
            }

            if (objectServicePersistenceEngine != null)
            {
                objectServicePersistenceEngine.Dispose();
            }
        }