Skip to content

Table to c# class

Last updated on April 3, 2017

Hızlı bir şeklide tabloları c# codune çevirmek için kullanabilir sinizi

declare @TableName sysname = 'NotificationType'


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 'float'
 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 '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
 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

Published inBilgiDataBaseMSSQL

Be First to Comment

Leave a Reply

Your email address will not be published. Required fields are marked *

Test222