首页 > 数据库 >SqlSever表结构转C#实体类

SqlSever表结构转C#实体类

时间:2023-05-25 17:35:08浏览次数:45  
标签:实体类 C# decimal when id Result SqlSever typ col

declare @TableName sysname = 'repair_plan'
declare @Result varchar(max) = '
/// <summary>
/// ' + @TableName +

'
/// </summary>
public class ' + @TableName + '
{'

select @Result = @Result + '
/// <summary>
/// ' + CONVERT(NVARCHAR(500), ISNULL(ColName, '无')) +

'
/// </summary>
public ' + ColumnType + NullableSign + ' ' + ColumnName + ' { get; set; }
'
from
(
SELECT
replace(col.name, ' ', '_') ColumnName,
column_id ColumnId,
prop.value ColName,
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
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 prop ON col.object_id = prop.major_id AND col.column_id = prop.minor_id
where object_id = object_id(@TableName)
) t
--order by ColumnId

set @Result = @Result + '
}'

print @Result

标签:实体类,C#,decimal,when,id,Result,SqlSever,typ,col
From: https://www.cnblogs.com/ylsa/p/17431999.html

相关文章

  • 【HMS Core】【ML Kit】活体检测FAQ合集
    【问题描述1】使用示例代码集成活体检测SDK时,报错statecode-7001【解决方案】使用示例代码前请详细阅读示例工程中的“README”文件。您需要完成以下操作后才可以运行示例代码。在AppGalleryConnect网站下载自己应用的“agconnect-services.json”文件,拷贝到示例工程的应用级根......
  • .net core 6中使用UEditor记录
    1.在NuGet中添加包:UEditor.Core或通过程序包管理控制台:Install-PackageUEditor.Core  2.添加服务端统一请求接口publicclassUEditorController:Controller{privatereadonlyUEditorService_ueditorService;publicUEditorController(UE......
  • FLEX实践—模拟Application与Module间的事件监听
         一直找到如何在Application中发出一个事件,让Module捕获该事件并做出相应的动作。但是一直没找到,于是模拟了一个这样的情景。 WatchTest.mxml<?xmlversion="1.0"encoding="utf-8"?><mx:Applicationxmlns:mx="http://www.adobe.com/2006/mxml"layout="absolute"......
  • 005关于spring框架actuator
    一、请求如下域名可以直接dump应用的堆栈内存,假如服务的监听端口为8080curlhttps://127.0.0.1:8080/actuator/heapdump二、请求如下域名可以直接看出服务本身是否正常,会把服务本身使用的中间的状态全部列出来,比如MySQL/redis等等,比如链接redis超时或连不上,总的status状态......
  • nacos开发中的坑
    nacos中的坑当不同开发者共用同一个nacos服务的时候,会导致在测试接口的时候出现404轮询的问题,因为开发者甲在调试A服务中的B功能接口,在乙开发者调试A服务中没有B功能的接口;所以导致出现404轮询的问题,下面是图解......
  • VM Workstation(virtual machine) 技巧
    分区默认三个部分boot占用:1G解释:启动分区,(格式为ext4)swap占用:2G解释:交换分区,内存多大他多大,内存不够用的时暂时存放的地方(格式为swap)/占用:自定义解释:根目录,(格式为ext4)网络连接的三种模式vmtools文件共享工具使用方法......
  • Distributed System and Application
    Assignment2:DistributedSystemandApplicationCloudComputingandDistributedSystems(CLOUDS)LaboratorySchoolofComputingandInformationSystemsTheUniversityofMelbourne,AustraliaOthercontributors:AllTutors2Project:DistributedSharedWhiteBoa......
  • Windows系统下设置cmd命令行(终端)走代理的方法
     根据代理软件查看对应端口号(因为可能不是缺省端口号) 这里我本地代理的端口号是10792,下一步设置记得修改端口号与此对应。#有些朋友好像为什么设置http和socket5其实设置哪种都是可以的,具体看你们自己代理软件都支持的协议有哪些,就可以了#记得修改端口号,比如我的是10792,记......
  • Locust-任务等待机制
    Locust任务等待的几种方式:constant(2)任务执行完毕等待2秒开始下一任务between(1,7)任务执行完毕等待1-7秒(中间随机取值)开始下一任务constant_pacing(2)从任务启动开始计算时间,若任务耗时超过该时间,则任务结束后立即执行下一任务;若任务耗时不超过该时间,则等待达到该时间后......
  • 记一次windows装docker,然后nacos连接宿主机mysql报错问题
    之前一直用linux装docker,这两天有空研究下windows上装DockerDesktop。安装步骤就不一一细说了,记录几个容易忘得地方。设置docker镜像存储位置//打包现有镜像wsl--exportdocker-desktop-data"D:\\work\\other-tools\\docker\\docker-desktop-data.tar"//注销镜像wsl--......