Let's learn how to generate C# Classes from SQL Scripts. Generate C# classes automatically for the entire database.
Step 1: Copy the query below and run it in the SQL Editor (New Query).
Step 2: Pass the table name as a parameter and run the query.
You can find the entire class in the output below.
DECLARE @TableName sysname = ''
DECLARE @objectId int=1
WHILE EXISTS (select 1 from sys.objects where type='U' and
name!='__RefactorLog' and object_id > @objectId)
BEGIN
SELECT @objectId = MIN(object_id) FROM sys.objects
WHERE TYPE='U' and NAME!='__RefactorLog'
AND object_id > @objectId
SET @TableName=(SELECT NAME FROM sys.objects WHERE object_id=@objectId)
DECLARE @Output VARCHAR(MAX) = 'public class ' + @TableName + '
{'
SELECT @Output = @Output + '
public ' + ColumnType + NullSign + ' ' + 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 'double'
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 'float'
WHEN 'smalldatetime' THEN 'DateTime'
WHEN 'smallint' THEN 'short'
WHEN 'smallmoney' THEN 'decimal'
WHEN 'text' THEN 'string'
WHEN 'time' THEN 'TimeSpan'
WHEN 'timestamp' THEN 'long'
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 NullSign
FROM sys.columns col
INNER 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)
) temp
order by ColumnId
set @Output = @Output + '
}'
print @Output
END
Here is the output
If you want to generate the classes of a specific table, follow the article below.
I hope you like this article.