/// <summary>
        /// Check if another Db object have same DB name
        /// </summary>
        /// <param name="trigger">Another DB object</param>
        /// <returns>True - objects have same names</returns>
        public bool IsSameDbName(DbObjectTableSchema trigger)
        {
            if (trigger == null)
            {
                throw new ArgumentNullException(nameof(trigger));
            }

            return(IsSameDbName(trigger.DbSchemaName, trigger.Name));
        }
        /// <summary>
        /// Compares database tables if schematicly match each other
        /// </summary>
        /// <param name="masterObjectTable">Master database objectTable (or left)</param>
        /// <param name="checkedObjectTable">Checked database objectTable (or right)</param>
        /// <returns>Comparison result</returns>
        public static DbSchemaCompareResult DbCompare(DbObjectTableSchema masterObjectTable, DbObjectTableSchema checkedObjectTable)
        {
            if (checkedObjectTable == null)
            {
                throw new ArgumentNullException(nameof(checkedObjectTable));
            }

            DbSchemaCompareResult result = new DbSchemaCompareResult(masterObjectTable, checkedObjectTable);

            result.CompareResultType = DbSchemaCompareResultType.Equals;

            CompareCollection(result, masterObjectTable.Columns, checkedObjectTable.Columns, (left, right) => string.Equals(left.Name, right.Name, StringComparison.Ordinal),
                              DbObjectTableColumnSchema.DbCompare);

            foreach (DbSchemaCompareResult fColumnCompare in result.InnerResults)
            {
                if (fColumnCompare.CompareResultType != DbSchemaCompareResultType.Equals)
                {
                    fColumnCompare.CompareResultType = DbSchemaCompareResultType.Different;
                }
            }

            return(result);
        }