kadirocsoy.com
.Net Core Projelerinde Database First Yaklaşımı İle Mysql veya Mssql'deki Veritabanının Class'larını Otomatik Oluşturma

.Net Core Projelerinde Database First Yaklaşımı İle Mysql veya Mssql'deki Veritabanının Class'larını Otomatik Oluşturma

Merhabalar;
Eğer Mssql veya Mysql'de veritabanınız var ve .Net Core projenizde class'larını otomatik oluşturarak EntityFreamwork yardımıyla veritabanınızı yönetmek istiyorsanız kullanacağınız en iyi yöntem Database First yaklaşımıdır. Lafı fazla uzatmadan Mssql ve Mysql için Database First yaklaşımı nasıl yapılır bakalım.

Öncelikle Visual Studio programında Solution Explorer kısmından proje adımıza sağ tıklayıp Manage NuGet Packages…” aracılığıyla aşağıdaki paketleri yüklüyoruz. Burada dikkat etmeniz gereken .Net Core versiyonunuz hangisi ise ona uygun olan paketi yüklemek. Örneğin 2.1, 3.1 veya 5.0 olabilir.

Ortak Paketler;
Microsoft.EntityFrameworkCore.Design
Microsoft.EntityFrameworkCore.Tools

MsSql İçin;
Microsoft.EntityFrameworkCore.SqlServer

MySql İçin;
Pomelo.EntityFrameworkCore.MySql
ÖNEMLİ: **(Mysql için bu paket malesef şuan için en yüksek .net core 3.1 versiyon için kullanılabiliyor. Henüz 5.0 ve üzeri için yayınlanmadı.)

Paketleri yüklendikten sonra Visual Studio programının üst menüsünden Tools > NuGet Package Manager > Package Manager Console'a tıklayarak konsol ekranını açıyoruz ve aşağıdaki sizin için uygun olan kodu kullanarak veritabanı ait tabloların class'larını oluşturmuş oluyorsunuz.

MsSql İçin;
Scaffold-DbContext "Connection String" Microsoft.EntityFrameworkCore.SqlServer -v -o Models -context "ConnectAdi"

MySql İçin;
Scaffold-DbContext "Connection String" "Pomelo.EntityFrameworkCore.MySql" -v -o Models -context "ConnectAdi"

Connection String: Bu kısma veri tabanı bağlantı yolunu yazmalısınız. Veri tabanınızın connection string öğrenmek için tıklayınız.
Örneğin; Server=Sunucu.IP.Adresi;database=veri_tabani_adi;user=kullanici_adi;password=sifre;
-v (verbose):
çıktıların ekrana dökülmesini sağlar.
-o (OutputDir): oluşturulacak class'ların hangi klasöre kayıt edileceğini belirtir. Örnekte Models klasörünü yazdık.
-context: Veri tabanı bağlantısı için class adı tanımlıyoruz.
-f (force): Eğer veri tabanında güncelleme yaptıysanız bunu projede de yapmak için -v yerine -f kullanıyoruz.
-UseDatabaseName: Veri tabanındaki tablolarda bulunan alan adlarıyla aynı isme ait değişkenler oluşturulmasını sağlamak için kullanabilirsiniz. Kullanmadığınız takdirde eğer alan adları küçük harflerle yazılı ise değişken isimlerini büyük harfle başlatıyor.

İşlemler bittikten sonra belirttiğiniz klasörde Context ve classlarınızın oluştuğunu görebilirsiniz. Eğer herhangi bir hata aldıysanız yorumlarda belirtebilirsiniz. Yardımcı olurum. İnşallah faydalı olmuştur. Teşekkürler...
 

Yorumlar

Yorum Yap