Contact Form

Name

Email *

Message *

Dot net Business Entity Create Free Auto using sql server Table

No comments

create PROC [dbo].[SpGenclass]
@TableName sysname
AS

declare @Result varchar(max) = 'public class ' + @TableName + CHAR(13) + '{'+ CHAR(13)
select
   @Result = @Result + 'public ' + ColumnType + NullableSign + ' ' + ColumnName + ' { get; set; }'+ CHAR(13)
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
               '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
         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 t.ColumnId set @Result = @Result + '}'print @Result

No comments :

Post a Comment