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

  • 相关阅读:
    超市管理系统第四篇
    团队作业2《需求说明》
    个人项目-Wc-Java
    【翻译】MVC Music Store 教程-概述(三)
    【翻译】MVC Music Store 教程-概述(二)
    【翻译】MVC Music Store 教程-概述(一)
    UWP ListView嵌套ListView
    UWP 双向绑定,在ListView中有个TextBox,怎么获取Text的值
    UWP 发送短信公用倒计时按钮
    UWP 使用Windows.Web.Http命名空间下的HttpClient使用post方法,上传图片服务器
  • 原文地址:https://www.cnblogs.com/wqtmelo/p/13304446.html
Copyright © 2011-2022 走看看