SQL生成 C# Model
时间:2021-07-01 10:21:17
帮助过:10人阅读
@TableName sysname
= ‘T_FakeOrderList‘
declare @Result varchar(
max)
= ‘public class ‘ + @TableName + ‘
{‘
select @Result = @Result + ‘
public ‘ + ColumnType
+ NullableSign
+ ‘ ‘ + ColumnName
+ ‘ { get; set; }
‘
from
(
select
replace(col.name,
‘ ‘,
‘_‘) ColumnName,
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
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
where object_id = object_id(
@TableName)
) t
order by ColumnId
set @Result = @Result + ‘
}‘
print @Result
SQL生成 C# Model
标签:name htm text nvarchar lse mod types https known