MAKALE

SQL de oluşturduğunuz tabloyu C# koduna çevirme SQL Scripti

Yazılım Geliştirme esnasında en çok kullandığımız veritabanında yer alacak tabloların tek tek model sınıflarını oluşturmak tabloda yer alan fields (alanlar) lerin çok olması zahmetli bir iş olsa gerek aşağıdaki kod ile bu durumu kurtarıyoruz.

Yapay Zekâ · 20.10.2023

SQL de oluşturduğunuz tabloyu C# koduna çevirme SQL Scripti

Yazılım Geliştirme esnasında en çok kullandığımız veritabanında yer alacak tabloların tek tek model sınıflarını oluşturmak tabloda yer alan fields (alanlar) lerin çok olması zahmetli bir iş olsa gerek aşağıdaki kod ile bu durumu kurtarıyoruz.

Yazılım Geliştirme esnasında en çok kullandığımız veritabanında yer alacak tabloların tek tek model sınıflarını oluşturmak tabloda yer alan fields (alanlar) lerin çok olması zahmetli bir iş olsa gerek aşağıdaki kod ile bu durumu kurtarıyoruz.

use URETIM
declare @TableName sysname = 'URETIM'
declare @result varchar(max) = 'public class ' + @TableName + '{'
 
select @result = @result + '
    public ' + ColumnType + ' ' + ColumnName + ' { get; set; }'
from
(
    select
        replace(col.name, ' ', '_') ColumnName,
        column_id,
        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 + 
        CASE
            WHEN col.is_nullable=1 AND
                 typ.name NOT IN (
                     'binary', 'varbinary', 'image',
                     'text', 'ntext',
                     'varchar', 'nvarchar', 'char', 'nchar')
            THEN '?'
            ELSE '' END AS [ColumnType]
    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 column_id
 
set @result = @result  + '}'
 
print @result