Ejemplo n.º 1
0
        private void ParseColumn(TableMetaData metaTable, Column column)
        {
            var meta_col = new ColumnMetaData();

            meta_col.Name            = column.Name;
            meta_col.DbType          = SQLMetaDataHelper.MapCsharpType(column.DataType.ToString());
            meta_col.Comment         = column.ExtendedProperties["MS_Description"]?.Value.ToString().Trim();
            meta_col.IsPrimaryKey    = column.InPrimaryKey;
            meta_col.IsIdentity      = column.Identity;
            meta_col.Nullable        = column.Nullable;
            meta_col.HasDefaultValue = column.DefaultConstraint != null && !string.IsNullOrWhiteSpace(column.DefaultConstraint.Text);
            metaTable.Columns.Add(meta_col);

            // 主键
            if (column.InPrimaryKey)
            {
                metaTable.PrimaryKey.Add(meta_col);
                metaTable.ExistPredicate.Add(meta_col);
                metaTable.WherePredicate.Add(meta_col);
            }

            // 标识
            if (column.Identity)
            {
                metaTable.Identity = meta_col;
            }
        }
Ejemplo n.º 2
0
 public override bool CanGenerateEnum(TableMetaData table, ColumnMetaData column)
 {
     if (string.IsNullOrWhiteSpace(column.Comment))
     {
         return(false);
     }
     return(_regex.Match(column.Comment).Success);
 }
Ejemplo n.º 3
0
        public override string RenderEnumFor(TableMetaData table, ColumnMetaData column)
        {
            var match   = _regex.Match(column.Comment);
            var comment = Replace(match.Value);
            var temp    = Regex.Replace(table.Name, @"\d", string.Empty).Replace("_", string.Empty);

            _enum_name = $"{temp}_{column.Name}_Enum";

            var enum_info = new EnumInfo
            {
                EnumName = _enum_name,
                Comment  = comment,
                Values   = comment.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries),
                DbType   = column.DbType
            };
            var model = new ViewInfoWapper(this);

            model.Config    = _config;
            model.TableInfo = table;
            model.EnumInfo  = enum_info;

            return(Render("Enum/enum.cshtml", model));
        }
Ejemplo n.º 4
0
 public abstract string RenderEnumFor(TableMetaData table, ColumnMetaData column);
Ejemplo n.º 5
0
 public abstract bool CanGenerateEnum(TableMetaData table, ColumnMetaData column);