Süleyman TOPAL

Web || Game = C#

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.

(more…)

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

(more…)

SQL Server Data Tiplerinin C# da Karşılığı

SQL Server Data Types and Their .NET Framework Equivalents

SQL Server data type          CLR data type (SQL Server)    CLR data type (.NET Framework)  
varbinary                     SqlBytes, SqlBinary           Byte[]  
binary                        SqlBytes, SqlBinary           Byte[]  
varbinary(1), binary(1)       SqlBytes, SqlBinary           byte, Byte[] 
image                         None                          None

varchar                       None                          None
char                          None                          None
nvarchar(1), nchar(1)         SqlChars, SqlString           Char, String, Char[]     
nvarchar                      SqlChars, SqlString           String, Char[] 
nchar                         SqlChars, SqlString           String, Char[] 
text                          None                          None
ntext                         None                          None

uniqueidentifier              SqlGuid                       Guid 
rowversion                    None                          Byte[]  
bit                           SqlBoolean                    Boolean 
tinyint                       SqlByte                       Byte 
smallint                      SqlInt16                      Int16  
int                           SqlInt32                      Int32  
bigint                        SqlInt64                      Int64 

smallmoney                    SqlMoney                      Decimal  
money                         SqlMoney                      Decimal  
numeric                       SqlDecimal                    Decimal  
decimal                       SqlDecimal                    Decimal  
real                          SqlSingle                     Single  
float                         SqlDouble                     Double  

smalldatetime                 SqlDateTime                   DateTime  
datetime                      SqlDateTime                   DateTime 

sql_variant                   None                          Object  
User-defined type(UDT)        None                          user-defined type     
table                         None                          None 
cursor                        None                          None
timestamp                     None                          None 
xml                           SqlXml                        None

Mssql Kodları

Basit Stored Procedures Örneği

Bu yazdığımız sotore procedure de bir tane “@id” parametresi göndererek “Users” tablosundaki gönderdiğimiz parametreye denk gelen üyenin bilgilerini alıyoruz.

USE [VeriTabanı]
GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROC [dbo].[usp_SelectUserData]
(
    @id int
)
AS
Select * from Users where UserId=@id

Hızlı bir şekilde değer artırma sorgusu

UPDATE User   SET UserFollow= UserFollow- 1  WHERE UserID=@UserID

Tarih aralı ve sorgunda kullanabilirsiniz.

Allttaki örnekte bu günün tarihinden bir gün düşüyoruz. Yanı Son 24 saatteki değerleri getir derken kunlanılabilir.

DATEADD(day, -1, GETDATE())
// year, quarter, month, dayofyear, day, week, weekday, hour, minute, second, millisecond, microsecond, nanosecond

Test222