2023年7月13日发(作者:)
使⽤Sql语句快速将数据表转换成实体类开发过程中经常需要根据数据表编写对应的实体类,下⾯是使⽤sql语句快速将数据表转换成对应实体类的代码,使⽤时只需要将第⼀⾏'TableName'引号⾥⾯的字母换成具体的表名称就⾏了:declare @TableName sysname = 'TableName'declare @Result varchar(max) = 'public class ' + @TableName + '{'select @Result = @Result + ' public ' + ColumnType + NullableSign + ' ' + ColumnName + ' { get; set; }'from( select
replace(, ' ', '_') ColumnName, column_id ColumnId, case
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 'string' 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_' + end ColumnType, case
when _nullable = 1 and in ('bigint', 'bit', 'date', 'datetime', 'datetime2', 'datetimeoffset', 'decimal', 'float', 'int', 'money', 'numeric', 'real', 'smalldatetime', 'smallint', 'smallmoney', 'time', 'tinyint', 'uniqueidentifier then '?'
else ''
end NullableSign from s col join typ on _type_id = _type_id AND _type_id = _type_id where object_id = object_id(@TableName)) torder by ColumnIdset @Result = @Result + '}'print @Result
发布者:admin,转转请注明出处:http://www.yc00.com/xiaochengxu/1689249447a225741.html
评论列表(0条)