SQL ERVER 表转化为C#实体(SQL 代码)
本文推出SqlServer表转化为实体的sql代码
在VS中有可以自带生成实体类的快捷操作,但是生成的代码比较杂乱,很多东西都是不需要的,一个一个去敲又很浪费时间,关键太无聊了
在闲暇之余写一份代码供大家学习,废话不多说,直接整干货:

1 DECLARE @TableName sysname = 'ObjeckBLL';-- 要生成实体类的表名 2 DECLARE @Result VARCHAR(MAX) = 'public class ' + @TableName + ' 3 {'; 4 SELECT @Result = @Result + ' 5 /// <summary> 6 /// ' + CAST(t.Summary AS VARCHAR(MAX)) + ' 7 /// </summary> 8 public ' + ColumnType + NullableSign + ' ' + ColumnName + ' { get; set; } 9 ' 10 FROM 11 ( 12 SELECT REPLACE(col.name, ' ', '_') ColumnName, 13 col.column_id ColumnId, 14 CASE typ.name 15 WHEN 'bigint' THEN 16 'long' 17 WHEN 'binary' THEN 18 'byte[]' 19 WHEN 'bit' THEN 20 'bool' 21 WHEN 'char' THEN 22 'string' 23 WHEN 'date' THEN 24 'DateTime' 25 WHEN 'datetime' THEN 26 'DateTime' 27 WHEN 'datetime2' THEN 28 'DateTime' 29 WHEN 'datetimeoffset' THEN 30 'DateTimeOffset' 31 WHEN 'decimal' THEN 32 'decimal' 33 WHEN 'float' THEN 34 'float' 35 WHEN 'image' THEN 36 'byte[]' 37 WHEN 'int' THEN 38 'int' 39 WHEN 'money' THEN 40 'decimal' 41 WHEN 'nchar' THEN 42 'char' 43 WHEN 'ntext' THEN 44 'string' 45 WHEN 'numeric' THEN 46 'decimal' 47 WHEN 'nvarchar' THEN 48 'string' 49 WHEN 'real' THEN 50 'double' 51 WHEN 'smalldatetime' THEN 52 'DateTime' 53 WHEN 'smallint' THEN 54 'short' 55 WHEN 'smallmoney' THEN 56 'decimal' 57 WHEN 'text' THEN 58 'string' 59 WHEN 'time' THEN 60 'TimeSpan' 61 WHEN 'timestamp' THEN 62 'DateTime' 63 WHEN 'tinyint' THEN 64 'byte' 65 WHEN 'uniqueidentifier' THEN 66 'Guid' 67 WHEN 'varbinary' THEN 68 'byte[]' 69 WHEN 'varchar' THEN 70 'string' 71 ELSE 72 'UNKNOWN_' + typ.name 73 END ColumnType, 74 CASE 75 WHEN col.is_nullable = 1 76 AND typ.name IN ( 'bigint', 'bit', 'date', 'datetime', 'datetime2', 'datetimeoffset', 'decimal', 77 'float', 'int', 'money', 'numeric', 'real', 'smalldatetime', 'smallint', 78 'smallmoney', 'time', 'tinyint', 'uniqueidentifier' 79 ) THEN 80 '?' 81 ELSE 82 '' 83 END NullableSign, 84 ISNULL(ep.value, col.name) AS Summary 85 FROM sys.columns col 86 JOIN sys.types typ 87 ON col.system_type_id = typ.system_type_id 88 AND col.user_type_id = typ.user_type_id 89 LEFT JOIN sys.extended_properties ep 90 ON ep.major_id = col.object_id 91 AND ep.minor_id = col.column_id 92 WHERE col.object_id = OBJECT_ID(@TableName) 93 ) t 94 ORDER BY ColumnId; 95 SET @Result = @Result + ' 96 }'; 97 PRINT @Result;
来看看效果:
有没有瞬间觉得很爽,排版清晰,结构清楚
今天的分享到此结束,有需要的可以关注留言讨论
能帮朋友解决问题的记得给个关注支持一下,以后将多多分享SQL SERVER 相关知识
本文来自博客园,作者:酒笙匿清栀,转载请注明原文链接:https://www.cnblogs.com/libo962464/p/16371933.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构