Generate class from SQL database table
declare @TableName sysname = 'BANKACCOUNT'
declare @Result varchar(max) = 'public class ' + UPPER(LEFT(@TableName,1))+LOWER(SUBSTRING(@TableName,2,LEN(@TableName))) + 'Entity
{'
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 '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
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
public class BankaccountEntity
{
public int ID { get; set; }
public string BANK { get; set; }
public string ROUNTINGNUM { get; set; }
public string CURRENCY { get; set; }
public string ACCOUNTNUM { get; set; }
public int? MAINACCOUNTID { get; set; }
public string IBAN { get; set; }
public string SWIFT { get; set; }
public string BRANCH { get; set; }
public string CONTACTPERSON { get; set; }
public string CONTACTPHONE { get; set; }
public string CONTACTEMAIL { get; set; }
public bool? STATUS { get; set; }
}