SQL

How To Generate C# Class From SQL Database Table

Hello Friends, In this article we are going to learn  how to generate C# class from SQL database table.

If you have a lot of fields in your SQL table and you want to create a model class, then you can easily generate model class using the store procedure given below.

Step 1 :- Create Below Store Procedure, It Will Generate C# Class From SQL Database Table.

CREATE PROC USP_CreateC#ClassFromSQL @TableName sysname
AS

  DECLARE @Result varchar(max) = 'public class ' + @TableName + '
{
'
  SELECT
    @Result = @Result + 'public ' + ColumnType + NullableSign + ' ' + ColumnName + ' { get; set; }' + CHAR(10)
  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 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

Step 2 :- This Store Procedure Will Create a Dynamic C# Class When You Enter Your Table Name.

EXEC USP_CREATEC#CLASSFROMSQL 'Enter Your Table Name Here'

Step :- 3  Let’s See Below Output

Please give your valuable feedback and if you any concern regarding this article, please let me know.

Also Check How To Use Toaster Notification In Angular 12

Dipak Suthar

I am Dipak, .NET Developer | Software engineer | Blogger at thecodehubs.com. I have hands-on experience in Angular, .Net Core ,C#, ASP.NET MVC, ASP.NET, SQL SERVER, SQL Server Reporting Service (SSRS), C, C++, JavaScript, JQuery, AJAX, Bootstrap, JSON, XML, HTML, CSS. My main passion is learning new technologies and sharing knowledge, with programming I loves photography, traveling, and listening to songs. Engineering professional with a Bachelor of Computer Applications - BCA focused on Computer Science from Veer Narmad South Gujarat University, Surat.

Recent Posts

Testing hk

Testing

2 years ago

Create and Used PIPE in angular

In this article, we have to show Create and Used PIPE in angular

2 years ago

Operation

Testing

2 years ago

Create and Used PIPE in angular

In this article, we have to show Create and Used PIPE in angular

2 years ago

Create and Used PIPE in angular

In this article, we have to show Create and Used PIPE in angular

2 years ago

TETS NEW

test

3 years ago