码迷,mamicode.com
首页 > 数据库 > 详细

利用SQL生成模型实体类(转)

时间:2020-07-15 15:19:45      阅读:85      评论:0      收藏:0      [点我收藏+]

标签:pre   eric   sys   bin   summary   double   arch   ide   system   

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

利用SQL生成模型实体类(转)

标签:pre   eric   sys   bin   summary   double   arch   ide   system   

原文地址:https://www.cnblogs.com/wqtmelo/p/13304446.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!