Asp.net Core 6 (.Net core 6) ile MySql e Entity Framework kullanarak proje geliştirmek

Bu yazıda Entity Framework kullanarak MySQL Veritabanına .NET Core 6 ile nasıl bağlayacağınızı öğreneceğiz.
 

Önkoşullar 

  • MySQL Server —  (projede XAMPP kullanıcaktır. )
  • Visual Studio Code - (ve Eklenti paketler .Net Core Pack )
  • .NET Core 6

Proje öncesinde projede kullanılan dolayısıyla sisteminizde bulunması gereken uygulamalar yukarıda listelenmiştir.

MySQL veritabanlı bir ASP.NET Core projesinde Entity Framework Core kullanarak basit bir proje olan telefon rehberi uygulaması yapacağız. 

Bu projede 

  • Asp.net Core 6 ile MySql nasıl kullanılır,
  • EF(Entity Framework)  migration işlemi nasıl yapılır,
gibi konular anlatılacaktır. 


Projemizde Telefon Rehberi yapılacaktır. 

  • kişi adsoyad ve telefon bilgileri Rehbere kaydedilecek,
  • rehberin tamamı görüntülenecek, 
  • istenilen kayıt silinebilecek,
  • istenilen kayıt güncellenebilecektir.


Adım 1: Proje Klasörü oluştur ve mvc deseni ekle

projem klasörümüz telefonRehberi olsun. klasörü projeye bağladıktan sonra komut satırına(cmd) geçerek mvc deseni ekleyelim. 

komut satırına 
> dotnet new mvc 

komutu girilerek projeye mvc deseni dahil edilir. 

Adım 2: Gerekli Paketleri Kur.  (Bağımlılıklar - Dependencies)

projeye Entity Framework konutlarını kullanmak ve Mysql bağlantı komutlarını kullanabilmek için bağımlılıkların kurulması gerekli bunun için yine komut satırına geçerek 

> dotnet add package Microsoft.EntityFrameworkCore
> dotnet add package Microsoft.EntityFrameworkCore.Tools
> dotnet add package Mysql.EntityFrameworkCore
komutları verilir.

Adım 3: Model oluştur

Model klasörü içerisine Kisi.cs isimli bir sınıf oluşturun. Model içerisinde tutulmak istenilen bilgileri özellikler şeklinde belirleyin.


 Not: namespace alanı proje ve klasör adına göre değişiklik gösterebilir.

Adım 4: DBContext Oluşturun ve Bağlantı Cümlesi Ekleyin

Kök dizinde "Data" adlı yeni bir klasör oluşturun ve "AppDbContext.cs" adlı yeni bir sınıf dosyası oluşturun. görseldeki ilgili kodu vsCode uygulamanızda eklenti yüklüyse ef-dbcontext kısayolu ile yazdırabilirsiniz. varsayılan olarak useSqlServer bağlantısı ile gelmektedir. Uygulamada MySql kullanıldığı için bunu UseMysql cümlesine çeviriyoruz.


Not: Veritabanı adı, Kullanıcı adı ve parola, Veritabanı sunucunuza göre değiştirilebilir.

Adım 5: Uygulamayı Mysql'e bağlanma şeklide ayarla

Uygulamayı MySQL Veritabanını kullanacak şekilde yapılandırın. Program.cs dosyasını açın ve aşağıdaki değişiklikleri yapın.


Adım 6: Veritabanını Controller'e ekleme

Veritabanı kullanılacak Controllere gidililerek kurucu metoda context ataması yapılır.

Örneğin HomeController için

Adım 7: Geçişler ve Veritabanını Güncelleme (Migrations)

XAMPP'yi açarak MySQL'i başlatın. Komut Satırını açarak 

veritabanı ile ilgili geçişi sağlayan kodları oluştur

> dotnet ef migrations add yeni

veritabanı geçiş dosyalarını veritabanına uygula.

> dotnet ef database update

Not: komut satırında dotnet ef komutu çalışmaz ve hata alırsanız. dotnet ef projeye dahil edilmemiş demektir. dotnet ef komutlarını çalıştırmak için komut satırından tekrar projeye dahil edebilir 

> dotnet tool install -g dotnet-ef 

veya 

projede ef dosyalarını güncelleyebilirsiniz.
> dotnet tool update -g dotnet-ef

bu komutlar çalışmıyorsa projedeki bin klasörünü silip tekrar deneyin.

Adım 8: Ekle Sayfası 

Proje temel yapısı hazırlandı. Artık tasarımlar yapılarak veritabanı işlemleri yapılabilir.

ekle sayfasını yaparak başlayalım. Controllers klasörü içindeki HomeController.cs (Controllers > HomeController.cs ) dosyasına ekle isimli actionlar ekliyoruz.

View > ekle.cshtml

Adım 9: Listeleme Sayfası

anasayfa olan index sayfasını listeleme sayfası olarak güncelleyelim. 

Controllers > HomeController.cs - Index Action

Views > Index.cshtml

Adım 10: Sil Sayfası

Sil komutu için ayrı bir sayfa yapmaya gerek yok. HomeController.cs dosyasına action olarak ekleyip anasayfaya yönlendirelim.

Controllers > HomeController.cs - sil Action

Adım 11: Detay Sayfası

detay linkine tıklandığında başka sayfada tek kişinin bilgilerini gösteren sayfa yapalım.

Controllers > HomeController.cs - detay action


Views > detay.cshtml


Adım 12: Güncelle Sayfası

Controllers > HomeController.cs - guncelle action

Views > guncelle.cshtml


Adım 13: Son.

bu uygulama ile mysql ve .net core 6 bağlantısı sağlanarak CRUD işlemleri basit haliyle anlatıldı. 


Video Anlatım.