代码改变世界

使用mysql查询生产c#实体

2022-10-14 15:56  Lecone.JY.HU  阅读(17)  评论(0编辑  收藏  举报
SELECT
CONCAT(' /// <summary>
         /// ',column_comment,' 
         /// </summary>
'),
CASE
WHEN COLUMN_NAME='RecordId' THEN CONCAT('public string ',COLUMN_NAME,'{ get; set; } = Guid.NewGuid().ToString("N");')
WHEN DATA_TYPE LIKE '%char%' OR DATA_TYPE LIKE '%text%' THEN 
CONCAT('[MaxLength(',CHARACTER_MAXIMUM_LENGTH,')]\r\n'
'public string ',COLUMN_NAME,'{ get; set; }')
WHEN DATA_TYPE LIKE 'int' and IS_NULLABLE='NO' THEN CONCAT('public int ',COLUMN_NAME,'{ get; set; }')
WHEN DATA_TYPE LIKE 'int' and IS_NULLABLE='YES' THEN CONCAT('public int? ',COLUMN_NAME,'{ get; set; }')
WHEN DATA_TYPE LIKE 'bigint' and IS_NULLABLE='NO' THEN CONCAT('public long ',COLUMN_NAME,'{ get; set; }')
WHEN DATA_TYPE LIKE 'bigint' and IS_NULLABLE='YES' THEN CONCAT('public long? ',COLUMN_NAME,'{ get; set; }')
WHEN DATA_TYPE LIKE 'smallint' and IS_NULLABLE='NO' THEN CONCAT('public int ',COLUMN_NAME,'{ get; set; }')
WHEN DATA_TYPE LIKE 'smallint' and IS_NULLABLE='YES' THEN CONCAT('public int? ',COLUMN_NAME,'{ get; set; }')
WHEN DATA_TYPE LIKE '%bit%' and IS_NULLABLE='NO' THEN CONCAT('public bool ',COLUMN_NAME,'{ get; set; }')
WHEN DATA_TYPE LIKE '%bit%' and IS_NULLABLE='YES' THEN CONCAT('public bool? ',COLUMN_NAME,'{ get; set; }')
WHEN DATA_TYPE LIKE '%float%' and IS_NULLABLE='NO'  THEN CONCAT('public decimal ',COLUMN_NAME,'{ get; set; }') 
WHEN DATA_TYPE LIKE '%float%' and IS_NULLABLE='YES'  THEN CONCAT('public decimal? ',COLUMN_NAME,'{ get; set; }') 
WHEN DATA_TYPE LIKE '%decimal%' and IS_NULLABLE='NO' THEN CONCAT('public decimal ',COLUMN_NAME,'{ get; set; }') 
WHEN DATA_TYPE LIKE '%decimal%' and IS_NULLABLE='YES' THEN CONCAT('public decimal? ',COLUMN_NAME,'{ get; set; }') 
WHEN DATA_TYPE LIKE '%date%' and IS_NULLABLE='NO' THEN CONCAT('public DateTime ',COLUMN_NAME,'{ get; set; }') 
WHEN DATA_TYPE LIKE '%date%' and IS_NULLABLE='YES' THEN CONCAT('public DateTime? ',COLUMN_NAME,'{ get; set; }') 
WHEN DATA_TYPE LIKE '%timestamp%' and IS_NULLABLE='NO'  THEN CONCAT('public DateTime ',COLUMN_NAME,'{ get; set; }')
WHEN DATA_TYPE LIKE '%timestamp%' and IS_NULLABLE='YES'  THEN CONCAT('public DateTime? ',COLUMN_NAME,'{ get; set; }')
ELSE COLUMN_NAME
END

 
FROM
    INFORMATION_SCHEMA.COLUMNS
WHERE table_schema = 'dbname'  -- 数据库名称
AND table_name = 'tbname' -- 表名
 
ORDER BY ordinal_position;

 

的风格风格