Merhabalar bu bölümümüzde ne Code First ne de Database First yaklaşımını kullanacağız. Hem veritabanımızı hem de modellerimizi ve databse context imizi kendimiz yazacağız.

Öncelikle daha önce yazdığımız WebAPI projemizi açalım. Eğer projeyi daha önceden yazmadıysanız ilgili projeye buradan , nasıl yazdığımıza ise buradan ulaşabilirsiniz.

Gerekli Paketlerin Yüklenmesi

Öncelikle işe gerekli paketleri projemize yükleyerek başlayalım. Projemizde bulunan paketler bölümüne sağ tıklayarak Nuget Paketlerini yönet diyelim.

Daha sonra açılan pencerede sqlserver olarak aratarak Microsoft.EntityFrameworkCore.SqlServer paketini kuralım

Veritabanının Oluşturulması

Konumuz veritabanı olmadığı ve burada veritabanı eğitimi anlatmamın doğru olmayacağı için veritabanını nasıl oluşturacağımız kısmını burada atlıyorum eğer veritabanı oluşturmayı bilmiyorsanız veritabanı eğitimi alana kadar code first yaklaşımı ile ilerlemenizi ve en kısa sürede bu konuyu öğrenmenizi tavsiye ederim.

Code First ile ilgili bölüme buradan ulaşabilirsiniz.

Önceki bölümlerde bahsedip hard coded olarak uyguladığımız öğrenci — ders uygulamamıza uygun veritabanımızı oluşturalım. Sonuç olarak aşağıdaki gibi bir veritabanımız olmalı.

Daha sonra ise kolay erişim için veritabanımızı visual studio’muza ekleyelim. Eğer sol menüde Sunucu Gezgini ni göremiyorsak üst menü -> görünüm -> sunucu gezgini seçerek Sunucu Gezgini ni açalım.

Sunucu Gezgininde veri bağlantıları yazısına sağ tıklayarak bağlantı ekle seçeneğini seçelim ve daha sonra açılan pencereden Microsoft SQL Server’ı seçerek devam edelim

Şimdi açılan pencerede SSMS’te sunucu ismi olarak gördüğümüz sonu \SQLEXPRESS ile biten sunucu adımızı buraya girelim ve aşağıdaki bölümden daha önce adlandırdığımız veritabanımızı seçip işlemi onaylayalım.

Artık sunucu gezginini kullanarak veritabanımıza erişebiliriz.

Database Context

Artık kodlamaya başlayalım değil mi ?

Öncelikle projemiz içerisinde DBContext sınıfımızı oluşturalım ve içerisini dolduralım. using Microsoft.EntityFrameworkCore ve using webAPI.Models kodlarını üst kısma eklemeyi unutmayalım.

1* Sınıfımız DbContext sınıfından kalıtılmalıdır.

2* Veritabanından gelen verilerin tutulacağı DbSetlerimizi tanımlayalım

3* Constructor methodumuzu oluşturalım

4* OnModelCreating fonksiyonu içerisinde veritabanı ilişkilerimizi tanımlayalım. Burada önemli olan kısım veritabanı ve uygulamamızdaki model — tablo isimlerinin birebir aynı olması. Farklı oldukları durumda bu kısımda gerekli konfigürasyonu yazmamız gerekir

Daha sonra sunucu gezgininden eklediğimiz veritabanımıza sağ tıklayıp özellikler seçeneğini seçtiğimizde sağ alt kısımda Özellikler penceresini göreceğiz. Bu penceredeki Bağlantı Dizesini kopyalayalım

Şimdi projemizde bulunan appsettings.json dosyamızı açalım ve

connstring: içerisine kopyaladığımız veritabanı dizesini yapıştıralım

,“ConnectionStrings”: {

“connstring”: “sizin veritabanı dizeniz”

}

Kodumuzu json dosyamıza aşağıda görüldüğü gibi ekleyelim.

Artık Startup.cs dosyamıza gelerek DbContextimizi Service olarak ekleyebiliriz.

services.AddDbContext<DBContext>(item => item.UseSqlServer(Configuration.GetConnectionString(“connstring”)));

Böylece veritabanımızı projemize bağlamış olduk.

Modellerin Düzenlenmesi

Öncelikle Entity modelimizde aşağıdaki değişiklikleri yapalım burada gözüken using.CompanentModel kısımlarını da unutmayalım.

Ogrenci modelimizi de aşağıdaki gibi değiştirelim

OgretimUyesi modelimizi de aşağıdaki gibi değiştirelim

Ders modelimizi de aşağıdaki gibi değiştirelim

Sonuç

DbScaffold ve Migration kullanmadan hem veritabanımızı hem de uygulamamızı kendimiz yazarak projemizi oluşturmuş olduk. Bundan sonra API mize bir istek geldiğinde veritabanı işlemlerimizi nasıl gerçekleştireceğimizi göreceğiz kalın sağlıcakla.

Bölüm 7'ye buradan ulaşabilirsiniz.

--

--

Erdemhan Özdin

Computer Engineering Master’s Degree , Research Assistant @Erciyes University , Software Developer 18 — ∞