首页 > 数据库 >SqlServer数据库表生成C# Model实体类SQL语句

SqlServer数据库表生成C# Model实体类SQL语句

时间:2023-04-06 13:46:51浏览次数:41  
标签:实体类 C# SqlServer decimal WHEN id Result typ col

DECLARE @TableName sysname = 'tb_Customer';
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;

  参考来自 https://www.cnblogs.com/meowv/p/11379829.html

标签:实体类,C#,SqlServer,decimal,WHEN,id,Result,typ,col
From: https://www.cnblogs.com/liaer/p/17292500.html

相关文章

  • 成功解决requests 报错raise SSLError(e, request=request)_requests.exceptions.SSL
    问题描述在使用requests调用https接口时,会遇到ssl证书报错raiseSSLError(e,request=request)requests.exceptions.SSLError:HTTPSConnectionPool(host='v4.ketangpai.com',port=443):Maxretriesexceededwithurl:/UserApi/login(CausedbySSLError(SSLCertVerificat......
  • [BUUCTF] findit
    a=['T','h','i','s','I','s','T','h','e','F','l','a','g','H','o','m','e�......
  • bootstrap5 .jqurey报错Cannot read properties of null (reading 'show')
    //toenabletooltipswiththedefaultconfiguration$('[data-bs-toggle="tooltip"]').tooltip()//toinitializetooltipswithgivenconfiguration$('[data-bs-toggle="tooltip"]').tooltip({boundary:'clipping......
  • 8·1Web安全攻击概述|8·3会话管理机制|8·4SQL注入攻击|8·5跨脚本攻击|8·6CSR攻击
    Web安全攻击概述web应用的概念web应用是由动态脚本,编译过的代码等组合而成它通常架设在Web服务器上,用户在Web浏览器上发送请求这些请求使用HTTP协议,由Web应用和企业后台的数据库及其他动态内容通信Web应用三层架构典型的Web应用通常是标准的三层架构模......
  • 灵魂云 在安装的时候出现了 Error launching installer
    问题: 我的电脑在之前安装的时候并没有出现这个错误,我升级了一下系统,当然是被迫的,我并不想升级,你关机系统默认就升级。 重新打开电脑之后,整个桌面都不一样了。桌面的路径跟之前的也不一样的,还好我之前桌面上的东西没有给我删掉。有很多之前安装过的软件都要重新安装,再次......
  • COMP3331/9331 计算机网络与应用
    COMP3331/9331ComputerNetworksandApplicationsAssignmentforTerm1,2023Version1.0Due:11:59am(noon)Friday,21April2023(Week10)1.ChangeLogVersion1.0releasedon9thMarch2023.2.GoalandlearningobjectivesForthisassignment,youaretoimp......
  • docker
    安装使用官方脚本一键安装curl-fsSLhttps://get.docker.com|bash-sdocker--mirrorAliyun或curl-sSLhttps://get.daocloud.io/docker|shcurl-o~/docker_OneKey_install.shhttp://www.hellokvm.com/jb/docker/docker_OneKey_install.sh;bash+xdocker_On......
  • Insert a scratch project into a ppt (MSPowerPoinT file)在powerpoint中播放Scratch
    Insertascratchprojectintoappt(MSPowerPoinTfile)在powerpoint中播放Scratch动画Contributedbyliupeng,March01,20120Comments4BookmarksAsupersimplewaytoinsertasbtoappt,asfollows:超级简单的实现Scratch的sb文件在ppt中播放,具体......
  • SRS+Docker部署教程
    SRS+Docker部署教程安装DockerWindows安装docker安装Hyper-VHyper-V是微软开发的虚拟机,类似于VMWare或VirtualBox,仅适用于Windows10。这是DockerDesktopforWindows所使用的虚拟机。但是,这个虚拟机一旦启用,QEMU、VirtualBox或VMWareWorkstation15及以下版本......
  • canal 同步mysql到rocketMQ
    https://github.com/alibaba/canal/wiki/canal介绍https://github.com/alibaba/canal/releases地址:Mysql172.31.100.133066rocketMQhttp://172.31.100.1:8181Canal-adminhttp://172.31.100.2:8089/admin123456一、Mysql5.7配置(1)###拉取镜像mysql5.7dockerp......