Let's learn how to generate C# Classes from SQL Scripts. Generate C# classes automatically.
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 = 'Person' -- Pass Table Name here
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
Here is the output