利用SQL生成模型实体类(转)
Posted T丶MELO
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用SQL生成模型实体类(转)相关的知识,希望对你有一定的参考价值。
DECLARE @TableName sysname = \'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;
以上是关于利用SQL生成模型实体类(转)的主要内容,如果未能解决你的问题,请参考以下文章