请选择 进入手机版 | 继续访问电脑版

T4模版生成实体(二)

[复制链接]
滚雪球少年 发表于 2021-1-1 18:31:12 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
 
4. 将数据库范例转为步伐范例
  1.         #region GetColumnInfoList 【获取数据库指定表的列聚集】        ///         /// 获取数据库指定表的列聚集        ///         ///         ///         public List GetColumnInfoList(string tableName)        {            return DatatableToList(GetColumnInfo(tableName));        }        #endregion        #region GetTableInfoList 【获取数据表聚集】        ///         /// 获取数据表聚集        ///         ///         public List GetTableInfoList()        {            return DatatableToList(GetTableInfo());        }        #endregion
复制代码
实体如下:
  1.     public class TableInfo    {        ///         /// 表的名称        ///         public string TableName{ get;set;}        ///         /// 表的备注        ///         public string TableRemark { get;set;}    }
复制代码
Mysql版本:
  1. public class ColumnInfo    {        ///         /// 列名        ///         [Column("COLUMN_NAME")]        public string ColumnName { get; set; }        ///         /// 是否可为空(注意这个顺序要在 DataType 之前,否则再用GetCLRType()时没有值)        ///         [Column("IS_NULLABLE")]        public string IsNullable { get; set; }        private string _DataType;        ///         /// 数据范例        ///         [Column("DATA_TYPE")]        public string DataType { get { return _DataType; } set { _DataType = GetCLRType(value); } }        ///         /// 列备注        ///         [Column("COLUMN_COMMENT")]        public string ColumnComment { get; set; }        ///         /// 列 键        ///         public string ColumnKey { get; set; }        public string ColumnDefault { get; set; }        //[NotMapped]        //public bool IsPrimary { get; set; }        private string GetCLRType(string dbType)        {            var result = string.Empty;            switch (dbType)            {                case "tinyint":                case "smallint":                case "mediumint":                case "int":                case "integer":                    result = "int" + (IsNullable == "YES" ? "?" : "");                    break;                case "double":                    result = "double" + (IsNullable == "YES" ? "?" : "");                    break;                case "float":                    result = "float" + (IsNullable == "YES" ? "?" : "");                    break;                case "decimal":                    result = "decimal" + (IsNullable == "YES" ? "?" : "");                    break;                case "numeric":                case "real":                    result = "decimal" + (IsNullable == "YES" ? "?" : "");                    break;                case "bit":                    result = "bool" + (IsNullable == "YES" ? "?" : "");                    break;                case "date":                case "time":                case "year":                case "datetime":                case "timestamp":                    result = "DateTime" + (IsNullable == "YES" ? "?" : "");                    break;                case "tinyblob":                case "blob":                case "mediumblob":                case "longblog":                case "binary":                case "varbinary":                    result = "byte[]";                    break;                case "char":                case "varchar":                case "tinytext":                case "text":                case "mediumtext":                case "longtext":                case "longblob":                    result = "string";                    break;                case "point":                case "linestring":                case "polygon":                case "geometry":                case "multipoint":                case "multilinestring":                case "multipolygon":                case "geometrycollection":                case "enum":                case "set":                default:                    result = dbType;                    break;            }            return result;        }    }
复制代码
SQL SERVER版本:
  1. public class ColumnInfo        {                ///                 /// 列名                ///                 [Column("COLUMN_NAME")]                public string ColumnName { get; set; }                ///                 /// 是否可为空(注意这个顺序要在 DataType 之前,否则再用GetCLRType()时没有值)                ///                 [Column("IS_NULLABLE")]                public int IsNullable { get; set; }                private string _DataType;                ///                 /// 数据范例                ///                 [Column("DATA_TYPE")]                public string DataType { get { return _DataType; } set { _DataType = GetCLRType(value); } }                ///                 /// 列备注                ///                 [Column("COLUMN_COMMENT")]                public string ColumnComment { get; set; }                [Column("COLUMN_LENGTH")]                public int ColumnLength { get; set; }                ///                 /// 列 键                ///                 public string ColumnKey { get; set; }                public string ColumnDefault { get; set; }                //[NotMapped]                //public bool IsPrimary { get; set; }                private string GetCLRType(string dbType)                {                        var result = string.Empty;                        switch (dbType)                        {                                case "uniqueidentifier":                                        result = "GUID" + (IsNullable == 1 ? "?" : "");                                        break;                                case "tinyint":                                case "smallint":                                case "mediumint":                                case "int":                                case "integer":                                        result = "int" + (IsNullable == 1 ? "?" : "");                                        break;                                case "double":                                        result = "double" + (IsNullable == 1 ? "?" : "");                                        break;                                case "float":                                        result = "float" + (IsNullable == 1 ? "?" : "");                                        break;                                case "decimal":                                        result = "decimal" + (IsNullable == 1 ? "?" : "");                                        break;                                case "numeric":                                case "real":                                        result = "decimal" + (IsNullable == 1 ? "?" : "");                                        break;                                case "bit":                                        result = "bool" + (IsNullable == 1 ? "?" : "");                                        break;                                case "date":                                case "time":                                case "year":                                case "datetime":                                case "timestamp":                                        result = "DateTime" + (IsNullable == 1 ? "?" : "");                                        break;                                case "tinyblob":                                case "blob":                                case "mediumblob":                                case "longblog":                                case "binary":                                case "varbinary":                                        result = "byte[]";                                        break;                                case "char":                                case "varchar":                                case "nvarchar":                                case "tinytext":                                case "text":                                case "mediumtext":                                case "longtext":                                case "longblob":                                        result = "string";                                        break;                                case "point":                                case "linestring":                                case "polygon":                                case "geometry":                                case "multipoint":                                case "multilinestring":                                case "multipolygon":                                case "geometrycollection":                                case "enum":                                case "set":                                default:                                        result = dbType;                                        break;                        }                        return result;                }        }
复制代码
 

来源:https://blog.csdn.net/shua67/article/details/112003722
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


专注素材教程免费分享
全国免费热线电话

18768367769

周一至周日9:00-23:00

反馈建议

27428564@qq.com 在线QQ咨询

扫描二维码关注我们

Powered by Discuz! X3.4© 2001-2013 Comsenz Inc.( 蜀ICP备2021001884号-1 )