While working on a data migration project that uses C# and Azure Functions. I found myself in the need to generate a model of the table(s). While doing a Google search I came across the following blog post that has a script to generate the model properties for me. Simply replace the table name variable at the top of the script with the table name you want to generate the properties for. You may also need to include the schema name in the table name if you have multiple tables with the same name, just under different schema's. I did make one change to it in the select @ result line. It was adding a blank line in between each property, so I removed the new line.
Reference:
Habilis. (2017, May 01). Creating C# model class from SQL query. Retrieved from https://habilisbest.com/creating-c-model-class-from-sql-query
declare @TableName sysname = 'TABLE_NAME'
declare @Result varchar(max) = 'public class ' + @TableName + '
{'
select @Result = @Result + '
public ' + (CASE WHEN ColumnName = 'RowVersion' THEN 'byte[]' ELSE ColumnType END) + 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 'string'
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 'timestamp'
when 'rowversion' then 'byte[]'
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
Reference:
Habilis. (2017, May 01). Creating C# model class from SQL query. Retrieved from https://habilisbest.com/creating-c-model-class-from-sql-query
We believe that many ad networks and affiliate program will gradually fade out in the next several years, while Google and Yahoo Zhudao even with their own, targeted search results and more per click advertising network. Leadgeneration
ReplyDeleteAivivu đại lý vé máy bay, tham khảo
ReplyDeletevé máy bay đi Mỹ bao nhiêu
giá vé máy bay mỹ về việt nam
vé máy bay từ frankfurt đi hà nội
bao giờ có chuyến bay từ nga về việt nam
mua vé máy bay từ anh về việt nam
chuyến bay từ châu âu về việt nam
khách sạn cách ly hà nội
These ballscrews are bolted to the bottom with the bearing mount bolted to the worktable or spindle provider. For extra data on how BCI’s attention to detail and quality excellence has made us a Disposable Shower Caps major player in the Precision Machining industry, please contact us today. We consider this to be of most significance, and it exhibits in the ability of our operators. Machines can only do the job, but the human element is what counts. This is how we proceed to please shoppers the world over, all through a mess number} of important business sectors. It is crucial to let a machinist analyze the tool’s sharpness, feed pace, and coolant levels as a result of|as a outcome of} a high operation temperature could cause burn marks.
ReplyDelete