Merhabalar , bu bölümde Code First yaklaşımı ile nasıl veritabanı bağlantımızı kuracağımızı ve nasıl veritabanımızı oluşturacağımızı göreceğiz.

Ö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 ve tools kelimelerini aratarak Microsoft.EntityFrameworkCore.SqlServer ve Microsoft.EntityFrameworkCore.Tools paketlerini projemize yükleyelim.

Veritabanının Oluşturulması

Paketlerimizi projemize artık yükledik şimdi de veritabanımızı oluşturalım. Giriş bölümünde kurduğumuz SQL Server EXPRESS ve SSMS uygulamalarına burada ihtiyacımız olacak. SSMS uygulamamızı açalım ve sol menüden Connect’i tıklayınca açılan pencerede eğer serverimiz otomatik olarak gözükmemişse browse for more yazısına tıklayalım ve açılan pencere Database Engine sekmesinin altında bulunan ve sonu \SQLEXPRESS ile biten sunucuyu seçelim.

Şimdi de sol menüden Databases klasörüne sağ tıklayıp new database seçeneğini seçelim. Veritabanımıza isim verdikten sonra işlemi onaylayalım.

Veritabanımızı da böylece oluşturmuş olduk , şimdi visual studio ya dönelim ve 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.

Code First Yaklaşımı — 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

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.

Code First Yaklaşımı — 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

Code First Yaklaşımı — Veritabanının Tamamlanması

Artık veritabanımızı tam olarak tamamlayabiliriz. Üst menüden Araçlar -> NuGet Paket Yöneticisi -> Paket Yöneticisi Konsolu seçeneğini seçelim.

Açılan komut satırına Add-Migration Initial komutunu girelim ve enterlayalım

Yukarıdaki satırları görünce projemizde aşağıdaki gibi bir migration dosyamız oluşmuş olacaktır

Şimdi aynı komut satırına Update-Database komutunu girelim ve işlemin tamamlanması bekleyelim işlem tamamlandığı zaman veritabanımız aşağıda göreceğimiz üzere projemize uygun şekilde güncellenmiş olacaktır.

Sonuç

Veritabanımızı projemize bağladık ve yazdığımız kod üzerinden projemize uygun şekilde veritabanımızı düzenlemiş 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.

Proje dosyalarına github hesabımdan veya buradan ulaşabilirsiniz

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

--

--

Erdemhan Özdin

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