Skip to content

Instantly share code, notes, and snippets.

@fredgdaley2
Last active June 6, 2018 07:59
Show Gist options
  • Save fredgdaley2/923215c76eec9e64b6373c68cda5e63f to your computer and use it in GitHub Desktop.
Save fredgdaley2/923215c76eec9e64b6373c68cda5e63f to your computer and use it in GitHub Desktop.
This code create c# class of your Mysql table.
SET @dbName := 'dataquickdev';
SET @table := 'vendorfiles';
SET group_concat_max_len = 2048;
SELECT
CONCAT('public class ', @table, '\n{\n', GROUP_CONCAT(a.property_ SEPARATOR '\n'), '\n}') class_
FROM
(SELECT
CONCAT(
'\tpublic ',
CASE
WHEN DATA_TYPE = 'bigint' THEN CONCAT('long',IF(IS_NULLABLE = 'NO' , '', '?'))
WHEN DATA_TYPE = 'BINARY' THEN CONCAT('byte[]',IF(IS_NULLABLE = 'NO' , '', '?'))
WHEN DATA_TYPE = 'bit' THEN CONCAT('bool',IF(IS_NULLABLE = 'NO' , '', '?'))
WHEN DATA_TYPE = 'char' THEN CONCAT('string',IF(IS_NULLABLE = 'NO' , '', '?'))
WHEN DATA_TYPE = 'date' THEN CONCAT('DateTime',IF(IS_NULLABLE = 'NO' , '', '?'))
WHEN DATA_TYPE = 'datetime' THEN CONCAT('DateTime',IF(IS_NULLABLE = 'NO' , '', '?'))
WHEN DATA_TYPE = 'datetime2' THEN CONCAT('DateTime',IF(IS_NULLABLE = 'NO' , '', '?'))
WHEN DATA_TYPE = 'datetimeoffset' THEN CONCAT('DateTimeOffset',IF(IS_NULLABLE = 'NO' , '', '?'))
WHEN DATA_TYPE = 'decimal' THEN CONCAT('decimal',IF(IS_NULLABLE = 'NO' , '', '?'))
WHEN DATA_TYPE = 'double' THEN CONCAT('double',IF(IS_NULLABLE = 'NO' , '', '?'))
WHEN DATA_TYPE = 'enum' THEN CONCAT('enum',IF(IS_NULLABLE = 'NO' , '', '?'))
WHEN DATA_TYPE = 'float' THEN CONCAT('float',IF(IS_NULLABLE = 'NO' , '', '?'))
WHEN DATA_TYPE = 'image' THEN CONCAT('byte[]',IF(IS_NULLABLE = 'NO' , '', '?'))
WHEN DATA_TYPE = 'int' THEN CONCAT('int',IF(IS_NULLABLE = 'NO' , '', '?'))
WHEN DATA_TYPE = 'money' THEN CONCAT('decimal',IF(IS_NULLABLE = 'NO' , '', '?'))
WHEN DATA_TYPE = 'nchar' THEN CONCAT('char',IF(IS_NULLABLE = 'NO' , '', '?'))
WHEN DATA_TYPE = 'ntext' THEN CONCAT('string',IF(IS_NULLABLE = 'NO' , '', '?'))
WHEN DATA_TYPE = 'numeric' THEN CONCAT('decimal',IF(IS_NULLABLE = 'NO' , '', '?'))
WHEN DATA_TYPE = 'nvarchar' THEN CONCAT('string',IF(IS_NULLABLE = 'NO' , '', '?'))
WHEN DATA_TYPE = 'real' THEN CONCAT('double',IF(IS_NULLABLE = 'NO' , '', '?'))
WHEN DATA_TYPE = 'smalldatetime' THEN CONCAT('DateTime',IF(IS_NULLABLE = 'NO' , '', '?'))
WHEN DATA_TYPE = 'smallint' THEN CONCAT('short',IF(IS_NULLABLE = 'NO' , '', '?'))
WHEN DATA_TYPE = 'smallmoney' THEN CONCAT('decimal',IF(IS_NULLABLE = 'NO' , '', '?'))
WHEN DATA_TYPE = 'text' THEN CONCAT('string',IF(IS_NULLABLE = 'NO' , '', '?'))
WHEN DATA_TYPE = 'time' THEN CONCAT('TimeSpan',IF(IS_NULLABLE = 'NO' , '', '?'))
WHEN DATA_TYPE = 'timestamp' THEN CONCAT('DateTime',IF(IS_NULLABLE = 'NO' , '', '?'))
WHEN DATA_TYPE = 'tinyint' THEN CONCAT('bool',IF(IS_NULLABLE = 'NO' , '', '?'))
WHEN DATA_TYPE = 'uniqueidentifier' THEN CONCAT('Guid',IF(IS_NULLABLE = 'NO' , '', '?'))
WHEN DATA_TYPE = 'varbinary' THEN CONCAT('byte[]',IF(IS_NULLABLE = 'NO' , '', '?'))
WHEN DATA_TYPE = 'varchar' THEN CONCAT('string',IF(IS_NULLABLE = 'NO' , '', '?'))
WHEN DATA_TYPE = 'longtext' THEN CONCAT('string',IF(IS_NULLABLE = 'NO' , '', '?'))
ELSE CONCAT('_UNKNOWN_',IF(IS_NULLABLE = 'NO' , '', '?'))
END, ' ',
COLUMN_NAME, ' {get; set;}') AS property_
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = @table AND table_schema = @dbName) a
;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment