Источник:
http://d365technext.blogspot.com/201...ase-table.html
==============
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
,
casetyp
.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
endColumnType
,
case
whencol
.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''
endNullableSign
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 byColumnId
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; }
}
Источник:
http://d365technext.blogspot.com/201...ase-table.html