Skip to content

Category: DataBase

Varolan bir Veritabanı ile ASP.NET ‘de ORM ile classları oluşturma. “Getting Started with EF Core on ASP.NET Core with an Existing Database”

Getting Started with EF Core on ASP.NET Core with an Existing Database

Varolan bir Veritabanı ile ASP.NET ‘de ORM ile classları oluşturma.

NOT: Tablolarınızda Primary Key Olmak zorunda.

 

Merhaba ORM ile DB classları otomatik nasıl oluşturulur..

 

Proje Oluşturma

  • Yeni Bir Proje Oluşturuyoruz.
  • File -> New -> Project…
  • Installed -> Templates -> Visual C# -> Web
  • ASP.NET Core Web Application (.NET Core)
  • Bir Proje Adı Giriniz.
  • “Authentication” ın “No Authentication” olduğundan emin olun.
  • OK e Tıklayın.

Table to c# class

Hızlı bir şeklide tabloları c# codune çevirmek için kullanabilir sinizi

declare @TableName sysname = 'NotificationType'


declare @Result varchar(max) = 'public class ' + @TableName + '
{'

select @Result = @Result + '
 public ' + ColumnType + 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 '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 ColumnId

set @Result = @Result + '
}'

print @Result

Test222