zoukankan      html  css  js  c++  java
  • 利用SQL生成模型实体类(转)

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

  • 相关阅读:
    在现有项目中使用AspNet Identity 2.0 实战
    SQL 带自增长列的表的插入
    在C++中子类继承和调用父类的构造函数方法
    C++继承
    C++中重载、重写(覆盖)和隐藏的区别实例分析
    C++类
    C++中头文件(.h)和源文件(.cpp)都应该写些什么
    C++模板
    C语言字符串操作总结大全
    C++ 标准模板库(STL)
  • 原文地址:https://www.cnblogs.com/wqtmelo/p/13304446.html
Copyright © 2011-2022 走看看