Last active
December 18, 2016 17:14
-
-
Save saad749/eca464fcfb94b296593a455ffb18a550 to your computer and use it in GitHub Desktop.
Generate POCO from SQL Table. Just replace the table name, and you will get a C# Class. Copied from: http://stackoverflow.com/a/19123064/1545156
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Declare @TableName sysname = 'REPLACE_WITH_YOUR_TABLE_NAME' | |
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 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment