private void CheckColumnIntegrity(string propertyName)
        {
            if (!Integrity.KeepColumnsUnique)// || !Integrity.HasGlobalColumn(this.Column.ColumnName))
            {
                return;
            }

            if (Integrity.IsColumnInThisTable(this.TableName, this.Column.ColumnName))
            {
                return;
            }

            if (this.Column.Precision == 0)
            {
                this.Column.Precision = Integrity.GetGlobalPrecision(this.Column.ColumnName);
            }

            if (this.Column.Scale == 0)
            {
                this.Column.Scale = Integrity.GetGlobalScale(this.Column.ColumnName);
            }

            if (this.Column.MaxLength == 0)
            {
                this.Column.MaxLength = Integrity.GetGlobalMaxLength(this.Column.ColumnName);
            }

            SqlDbType?globalDataType = Integrity.GetGlobalColumnDataType(this.Column.ColumnName);

            if (globalDataType.HasValue)
            {
                this.Column.SqlDataType = globalDataType.Value;
            }

            if (this.Column.FriendlyName.IsNullEmptyOrWhiteSpace() || propertyName == "ColumnName")
            {
                this.Column.FriendlyName = Integrity.GetFriendlyName(this.Column.ColumnName);
            }

            if (this.Column.Description.IsNullEmptyOrWhiteSpace() || propertyName == "ColumnName")
            {
                this.Column.Description = Integrity.GetDescription(this.Column.ColumnName);
            }

            if ((Integrity.AllowDatabaseRelations || Integrity.AllowVertualRelations) &&
                Integrity.IsPrimaryKeyColumn(this.Column.ColumnName))
            {
                //this.Column.IsForeignkey = true;

                //if (!Integrity.AllowDatabaseRelations && Integrity.AllowVertualRelations)
                //{
                //  this.Column.IsVertualRelation = Integrity.AllowVertualRelations;
                //}

                //this.Column.ForeignKeyTable = Integrity.GetPrimaryKeyTable(this.Column.ColumnName);

                //this.Column.ForeignConstraintName = Integrity.BuildForeighKeyName(this.Column.ForeignKeyTable, this.TableName);

                //this.Column.ForeignKeyColumn = this.Column.ColumnName;
            }
            else
            {
                this.Column.IsForeignkey = false;

                this.Column.ForeignKeyTable = string.Empty;

                this.Column.ForeignConstraintName = string.Empty;

                this.Column.ForeignKeyColumn = string.Empty;
            }
        }