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; } }
public override bool CanGenerateEnum(TableMetaData table, ColumnMetaData column) { if (string.IsNullOrWhiteSpace(column.Comment)) { return(false); } return(_regex.Match(column.Comment).Success); }
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)); }
public abstract string RenderEnumFor(TableMetaData table, ColumnMetaData column);
public abstract bool CanGenerateEnum(TableMetaData table, ColumnMetaData column);