Example #1
0
        /// <summary>
        /// Возвращает true, если сравниваемый с данным индексом существующий индекс имеет одинаковый набор столбцов,
        /// расположенных в одинаковом порядке, имеющих одинаковые направления сортировки.
        /// </summary>
        /// <param name="existingIndexToCompare">Существующий индекс таблицы, сравниваемый с данным индексом.</param>
        /// <returns></returns>
        internal bool ColumnsEqual(DBIndexInfo existingIndexToCompare)
        {
            if (existingIndexToCompare == null)
            {
                throw new ArgumentNullException("existingIndexToCompare");
            }

            //флаг равенства индексов
            bool equal = false;

            //сначала сравниваем количество столбцов
            if (this.Columns.Count == existingIndexToCompare.Columns.Count)
            {
                equal = true;
                for (int i = 0; i < this.Columns.Count; i++)
                {
                    DBIndexColumnSchema column          = this.Columns[i];
                    DBIndexColumnInfo   columnToCompare = existingIndexToCompare.Columns[i];
                    //если хотя бы один столбец не равен соответствующему по то му же порядковому номеру,
                    //прекращаем сравнение и возвращаем false.
                    if (!column.EqualsTo(columnToCompare))
                    {
                        equal = false;
                        break;
                    }
                }
            }
            return(equal);
        }
Example #2
0
        /// <summary>
        /// Создает экземпляр DBIndexColumn.
        /// </summary>
        /// <param name="schema">Схема столбца индекса.</param>
        /// <param name="index">Индекс, к которому относится столбец.</param>
        public DBIndexColumn(DBIndexColumnSchema schema, DBIndex index)
        {
            if (schema == null)
            {
                throw new ArgumentNullException("schema");
            }
            if (index == null)
            {
                throw new ArgumentNullException("index");
            }

            this.Schema = schema;
            this.Index  = index;
        }
Example #3
0
        /// <summary>
        /// Возвращает столбец индекса по названию столбца.
        /// </summary>
        /// <param name="columnName">Название столбца индекса.</param>
        /// <returns></returns>
        public DBIndexColumnSchema GetColumn(string columnName)
        {
            if (string.IsNullOrEmpty(columnName))
            {
                throw new ArgumentNullException("columnName");
            }

            DBIndexColumnSchema column = null;

            if (this.ColumnsByName.ContainsKey(columnName.ToLower()))
            {
                column = this.ColumnsByName[columnName.ToLower()];
            }
            return(column);
        }