zoukankan      html  css  js  c++  java
  • 利用SQL直接生成模型实体类

    在网上找来一个别人写好的,生成实体类的SQL代码

    declare @TableName sysname = 'lkxxb'
    declare @Result varchar(max) = 'public class ' + @TableName + '
    {'
    
    select @Result = @Result + '
        public ' + ColumnType + NullableSign + ' ' + ColumnName + ' { get; set; }
    '
    from
    (
        select
            replace(col.name, ' ', '_') ColumnName,
            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
        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
        where object_id = object_id(@TableName)
    ) t
    order by ColumnId
    
    set @Result = @Result  + '
    }'
    
    print @Result

    出处:https://www.cnblogs.com/meowv/p/11379829.html

    =========================================

    后续优化:增加注释说明

  • 相关阅读:
    luoguP2657 [SCOI2009] windy 数 数位dp
    LOJ#3280. 「JOISC 2020 Day4」首都城市 点分治+BFS
    luoguP2168 [NOI2015]荷马史诗 哈夫曼树
    转载-如何在博客园随笔中增加章节导航
    转载-MySQL之终端(Terminal)管理数据库、数据表、数据的基本操作
    转载-MySQL之终端(Terminal)管理MySQL
    数据库缓存
    独立图片服务器的部署(了解)
    CDN加速
    MySQL update替换字段部分内容
  • 原文地址:https://www.cnblogs.com/mq0036/p/11399415.html
Copyright © 2011-2022 走看看