• 通过SQL语句生成实体类


    通过SQL语句生成实体类

    DECLARE @TableName sysname = '表名';
    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.iwmyx.cn/tgsqlyjscstl.html

  • 相关阅读:
    c++ 的几种强制转换的讨论
    观察者模式
    epoll实现linux进程通信
    vim 实现 go to definition的功能
    svn 的使用
    makefile文件的技术
    [转]epoll技术
    [转]poll技术
    Linux重定向的理解
    避免僵死进程的方法
  • 原文地址:https://www.cnblogs.com/star8521/p/15989367.html
Copyright © 2020-2023  润新知