利用SQL生成模型实体类(转)
时间:2021-07-01 10:21:17
帮助过:20人阅读
TableName‘;
DECLARE @Result VARCHAR(MAX) =
‘public class ‘ + @TableName +
‘
{
‘;
SELECT @Result = @Result +
‘
/// <summary>
/// ‘ + CAST(t.Summary AS VARCHAR(MAX)) + ‘
/// </summary>
public ‘ + ColumnType + NullableSign + ‘ ‘ + ColumnName + ‘ {
get;
set; }
‘
FROM
(
SELECT REPLACE(col.name, ‘ ‘,
‘_‘) ColumnName,
col.column_id ColumnId,
CASE typ.name
WHEN ‘bigint‘ THEN
‘long‘
WHEN ‘binary‘ THEN
‘byte[]‘
WHEN ‘bit‘ THEN
‘bool‘
WHEN ‘char‘ THEN
‘string‘
WHEN ‘date‘ THEN
‘DateTime‘
WHEN ‘datetime‘ THEN
‘DateTime‘
WHEN ‘datetime2‘ THEN
‘DateTime‘
WHEN ‘datetimeoffset‘ THEN
‘DateTimeOffset‘
WHEN ‘decimal‘ THEN
‘decimal‘
WHEN ‘float‘ THEN
‘float‘
WHEN ‘image‘ THEN
‘byte[]‘
WHEN ‘int‘ THEN
‘int‘
WHEN ‘money‘ THEN
‘decimal‘
WHEN ‘nchar‘ THEN
‘char‘
WHEN ‘ntext‘ THEN
‘string‘
WHEN ‘numeric‘ THEN
‘decimal‘
WHEN ‘nvarchar‘ THEN
‘string‘
WHEN ‘real‘ THEN
‘double‘
WHEN ‘smalldatetime‘ THEN
‘DateTime‘
WHEN ‘smallint‘ THEN
‘short‘
WHEN ‘smallmoney‘ THEN
‘decimal‘
WHEN ‘text‘ THEN
‘string‘
WHEN ‘time‘ THEN
‘TimeSpan‘
WHEN ‘timestamp‘ THEN
‘DateTime‘
WHEN ‘tinyint‘ THEN
‘byte‘
WHEN ‘uniqueidentifier‘ THEN
‘Guid‘
WHEN ‘varbinary‘ THEN
‘byte[]‘
WHEN ‘varchar‘ THEN
‘string‘
ELSE
‘UNKNOWN_‘ +
typ.name
END ColumnType,
CASE
WHEN col.is_nullable =
1
AND typ.name IN ( ‘bigint‘,
‘bit‘,
‘date‘,
‘datetime‘,
‘datetime2‘,
‘datetimeoffset‘,
‘decimal‘,
‘float‘,
‘int‘,
‘money‘,
‘numeric‘,
‘real‘,
‘smalldatetime‘,
‘smallint‘,
‘smallmoney‘,
‘time‘,
‘tinyint‘,
‘uniqueidentifier‘
) THEN
‘?‘
ELSE
‘‘
END NullableSign,
ISNULL(ep.value, col.name) AS Summary
FROM sys.columns col
JOIN sys.types typ
ON col.system_type_id =
typ.system_type_id
AND col.user_type_id =
typ.user_type_id
LEFT JOIN sys.extended_properties ep
ON ep.major_id =
col.object_id
AND ep.minor_id =
col.column_id
WHERE col.object_id =
OBJECT_ID(@TableName)
) t
ORDER BY ColumnId;
SET @Result = @Result +
‘
}
‘;
PRINT @Result;
转自大佬:https://www.cnblogs.com/meowv/p/11379829.html
利用SQL生成模型实体类(转)
标签:pre eric sys bin summary double arch ide system