public override void Initialize()
    {
        m_RelationFields =
            Execute(RelationFieldCommandText)
            .Select(o => RelationField.CreateFrom(SqlHelper, o))
            .ToDictionary(x => new RelationFieldKey(x.RelationName, x.FieldName));
        m_RelationFieldByTypeObjectNameKey =
            m_RelationFields
            .Values
            .ToDictionary(rf => rf.TypeObjectNameKey);
        var relationFields = m_RelationFields.Values.ToLookup(x => x.RelationName);

        m_Relations =
            Execute(RelationCommandText)
            .Select(o => Relation.CreateFrom(SqlHelper, o, relationFields))
            .ToDictionary(x => x.RelationName);
        m_ViewRelations =
            Execute(ViewRelationCommandText)
            .Select(o => ViewRelation.CreateFrom(SqlHelper, o))
            .ToList();
        m_Tables =
            m_Relations.Values
            .Where(x => x.MetadataRelationType == MetadataRelationType.Persistent)
            .ToDictionary(x => x.RelationName);
        m_Views =
            m_Relations.Values
            .Where(x => x.MetadataRelationType == MetadataRelationType.View)
            .ToDictionary(x => x.RelationName);
        m_ExternalTables =
            m_Relations.Values
            .Where(x => x.MetadataRelationType == MetadataRelationType.External)
            .ToDictionary(x => x.RelationName);
        m_GttTables =
            m_Relations.Values
            .Where(x => x.MetadataRelationType == MetadataRelationType.GlobalTemporaryPreserve || x.MetadataRelationType == MetadataRelationType.GlobalTemporaryDelete)
            .ToDictionary(x => x.RelationName);
    }
        public override void Initialize()
        {
            m_RelationFields =
                Execute(RelationFieldCommandText)
                .Select(o => RelationField.CreateFrom(SqlHelper, o))
                .ToDictionary(x => new RelationFieldKey(x.RelationName, x.FieldName));
            m_RelationFieldByTypeObjectNameKey =
                m_RelationFields
                .Values
                .ToDictionary(rf => rf.TypeObjectNameKey);
            var relationFields = m_RelationFields.Values.ToLookup(x => x.RelationName);

            m_Relations =
                Execute(RelationCommandText)
                .Select(o => Relation.CreateFrom(SqlHelper, o, relationFields))
                .ToDictionary(x => x.RelationName);
            m_ViewRelations =
                Execute(ViewRelationCommandText)
                .Select(o => ViewRelation.CreateFrom(SqlHelper, o))
                .ToList();
            m_Tables =
                m_Relations.Values
                .Where(x => x.MetadataRelationType == MetadataRelationType.PERSISTENT)
                .ToDictionary(x => x.RelationName);
            m_Views =
                m_Relations.Values
                .Where(x => x.MetadataRelationType == MetadataRelationType.VIEW)
                .ToDictionary(x => x.RelationName);
            m_ExternalTables =
                m_Relations.Values
                .Where(x => x.MetadataRelationType == MetadataRelationType.EXTERNAL)
                .ToDictionary(x => x.RelationName);
            m_GttTables =
                m_Relations.Values
                .Where(x => x.MetadataRelationType == MetadataRelationType.GLOBAL_TEMPORARY_PRESERVE || x.MetadataRelationType == MetadataRelationType.GLOBAL_TEMPORARY_DELETE)
                .ToDictionary(x => x.RelationName);
        }