SQL Server中直接把表生成C#所需要的对象代码

-- 只需要改这里:你的表名
DECLARE @TableName NVARCHAR(100) = 'Xt_Czy'

SELECT 
'/// <summary>' + CHAR(13) + CHAR(10) +
'/// ' + CONVERT(NVARCHAR(MAX), ISNULL(ep.value, '')) + CHAR(13) + CHAR(10) +
'/// </summary>' + CHAR(13) + CHAR(10) +
'public ' + 
CASE 
    WHEN ty.name IN ('varchar', 'nvarchar', 'char', 'nchar', 'text') THEN 'string'
    WHEN ty.name IN ('int') THEN 'int'
    WHEN ty.name IN ('bigint') THEN 'long'
    WHEN ty.name IN ('bit') THEN 'bool'
    WHEN ty.name IN ('datetime', 'smalldatetime', 'datetime2') THEN 'DateTime'
    WHEN ty.name IN ('decimal', 'money', 'numeric') THEN 'decimal'
    WHEN ty.name IN ('float') THEN 'double'
    WHEN ty.name IN ('image') THEN 'byte[]'
    ELSE 'object'
END
+ ' ' + c.name + ' { get; set; }' + CHAR(13) + CHAR(10)
FROM sys.columns c
JOIN sys.tables t ON c.object_id = t.object_id
JOIN sys.types ty ON c.system_type_id = ty.system_type_id
LEFT JOIN sys.extended_properties ep 
    ON ep.major_id = c.object_id 
    AND ep.minor_id = c.column_id 
    AND ep.name = 'MS_Description'
WHERE t.name = @TableName
ORDER BY c.column_id

 

posted on 2026-05-30 17:29  绝版佳嫐  阅读(4)  评论(0)    收藏  举报