zoukankan      html  css  js  c++  java
  • Generate class from database table

    declare @TableName sysname = 'TableName'
    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 'double'
                when 'image' then 'byte[]'
                when 'int' then 'int'
                when 'money' then 'decimal'
                when 'nchar' then 'string'
                when 'ntext' then 'string'
                when 'numeric' then 'decimal'
                when 'nvarchar' then 'string'
                when 'real' then 'float'
                when 'smalldatetime' then 'DateTime'
                when 'smallint' then 'short'
                when 'smallmoney' then 'decimal'
                when 'text' then 'string'
                when 'time' then 'TimeSpan'
                when 'timestamp' then 'long'
                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://stackoverflow.com/questions/5873170/generate-class-from-database-table


    If you want to use Entity Framework you should consider to use Database First approach.

    Other simple and fast way to import a Sql Server scheme to a class in VS is this:

    1. Make a select as json query:

      SELECT * FROM Approval FOR JSON AUTO

    2. Copy one row from the result in your clipboard:

      [{"Id":1,"FormId":10,"DesignationId":100,"CreatedOn":"2000-01-01T00:00:00"},{"Id":2,"FormId":20,"DesignationId":200,"CreatedOn":"2000-01-01T00:00:00"}... ]

    3. Paste in Visual Studio: Edit-> Paste Special -> Paste Json As Classes



  • 相关阅读:
    eclipse加载maven工程提示pom.xml无法解析
    tensorflow入门——5tensorflow安装
    tensorflow入门——3解决问题——4让我们开始吧
    神经网络入门——12梯度下降代码
    神经网络入门——11梯度下降算法
    如何避免梯度下降到局部最小值
    神经网络入门——10.梯度下降
    神经网络入门——9.简单神经网络
    神经网络入门——8XOR感知器
    神经网络入门——7or 感知器
  • 原文地址:https://www.cnblogs.com/kevin1988/p/12637786.html
Copyright © 2011-2022 走看看