/// <summary>
        ///
        /// </summary>
        /// <param name="tableMetadata"></param>
        /// <returns></returns>
        private static PrimaryKeyMetadata GetPrimaryKey(TableMetadata tableMetadata)
        {
            var primaryKey = new PrimaryKeyMetadata();

            primaryKey.PrimaryColumn = tableMetadata.GetColumnMetadata(nameof(EnumTableMetadata.Id));
            primaryKey.Name          = "PK_enum_" + tableMetadata.Name;

            return(primaryKey);
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="value"></param>
        /// <param name="tableMetadata"></param>
        /// <returns></returns>
        private static IEnumerable <TableValueItemMetadata> GetValueItemsMetadata(object value, TableMetadata tableMetadata)
        {
            var idValue = new TableValueItemMetadata();

            idValue.Column = tableMetadata.GetColumnMetadata(nameof(EnumTableMetadata.Id));
            idValue.Value  = (int)value;
            yield return(idValue);

            var nameValue = new TableValueItemMetadata();

            nameValue.Column = tableMetadata.GetColumnMetadata(nameof(EnumTableMetadata.Name));
            nameValue.Value  = value.ToSafeString();
            yield return(nameValue);

            var synonymValue = new TableValueItemMetadata();

            synonymValue.Column = tableMetadata.GetColumnMetadata(nameof(EnumTableMetadata.Synonym));
            synonymValue.Value  = string.Empty;
            yield return(synonymValue);
        }