İçeriğe geç

Table to c# class

Last updated on Nisan 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

Tarih:BilgiDataBaseMSSQL

İlk Yorumu Siz Yapın

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Test222