/// <summary>
        /// Compares database table columns if schematicly match each other
        /// </summary>
        /// <param name="masterColumn">Master database table column (or left)</param>
        /// <param name="checkedColumn">Checked database table column (or right)</param>
        /// <returns>Comparison result</returns>
        public static DbSchemaCompareResult DbCompare(DbObjectTableColumnSchema masterColumn, DbObjectTableColumnSchema checkedColumn)
        {
            if (masterColumn == null)
            {
                throw new ArgumentNullException(nameof(masterColumn));
            }

            if (checkedColumn == null)
            {
                throw new ArgumentNullException(nameof(checkedColumn));
            }

            DbSchemaCompareResult result = DbObjectParameterSchema.DbCompare(masterColumn, checkedColumn);

            if (masterColumn.DefaultValue != checkedColumn.DefaultValue)
            {
                result.CompareResultType = DbSchemaCompareResultType.Different;
            }

            if (masterColumn.Collation != checkedColumn.Collation)
            {
                result.CompareResultType = DbSchemaCompareResultType.Different;
            }

            return(result);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Add new DB column schema to this DB table schema
        /// </summary>
        /// <param name="column">Db table column schema to add</param>
        public void AddColumn(DbObjectTableColumnSchema column)
        {
            _columns.Add(column);

            int fakeOrderId = 0;

            _columns = _columns.OrderBy(c => c.OrderId).ToList();
            _columns.ForEach(c => c.FakeOrderId = fakeOrderId++);
        }