ASP.NET Core, Entity Framework Core ile PostgreSQL Code First
  1. Anasayfa
  2. ASP.Net

ASP.NET Core, Entity Framework Core ile PostgreSQL Code First

0

Bugün Mshowto‘da Code First yapısının ne olduğunu ve Migration ile veri tabanına model oluşturma konusu ile sizlerleyim. İlk olarak Entity Framework nedir? Sorusu ile başlamak istiyorum.

Entity Framework: Entity Framework ORM (Object Relational Mapping) araçlarından biridir. ORM nedir dersek ilişkisel veri tabanı ile nesneye yönelik programlama (OOP) arasında bir köprü görevi gören araçtır. Basite indirgemek istersek nesnelerimizi ilişkisel veri tabanındaki tablomuza bağlayan ve veri alışverişini bizim için yapan bir metottur. ORM tekniği belli bir programlama diline bağlı değildir ve her OO dilinde yazılabilir. Böylece veri tabanı işlemlerinin SQL kodları yazmadan nesneler üzerinden kolayca yapılmasını sağlar. Veri tabanına yapılacak CRUD (Create Read Update Delete) işlemlerini EF aracı tarafından algılanır ve yapılacak olan işlem SQL kodlarına dönüştürülür. Bu işleme “Code Generating” denir. EF kullanan geliştirici Linq kullanarak sorgu yazabilir.

Entity Framework ile 3 farklı yöntem ile proje geliştirilebilir. Bu yöntemler;

1. Model First (New Database)

2. Database First (Existing Database)

3. Code First (New Database)

Model First (Önce Model):
Bu yöntem Visual Studio üzerinde boş bir model dosyası (.edmx) eklenerek veri tabanı bu model üzerinde oluşturulur. Derleme adımında verilen Script dosyası veri tabanını oluşturur.

Database First (Önce Veri tabanı): Bu yöntem önceden oluşturulmuş olan veri tabanını projeye model olarak bağlayarak gerekli classlarımız Entity Framework tarafından oluşturulmaktadır.

Bu yöntem hali hazırda var olan veri tabanı projeye model dosyası ile bağlanır ve gerekli classlar EF tarafından üretilir.

Code First (Önce Kod – Yeni / Var olan Veritabanı): Bu yöntem classlar ve mapping kodları yazılımcı tarafından oluşturulur. Daha sonra veri tabanı bu classlardan türetilir ve modellemenin durumuna göre tekrardan şekillenebilir.

Biz Entity Framework yöntemlerinden CodeFirst yaklaşımı kullanarak veri tabanı tablo ve ilişkilerini Class(sınıf) yardımıyla oluşturarak işleyişimizi devam ettireceğiz.

Öncelikli olarak yeni bir .Net Core projesi ve web projesi oluşturuyorum.


Resim-1


Resim-2

Oluşturduğumuz her iki proje için Package Manager Console üzerinden Entity Framework Core paketini Install-Package Microsoft.EntityFrameworkCore komutu ile ya da ekran görüntüsünde bulunan (Solution sağ tıklayıp Manage NuGet Packages for Solution ‘ı seçiyoruz) ekrandan indiriyoruz.

  • Npgsql.EntityFrameworkCore.PostgreSQL
  • Microsoft.EntityFrameworkCore.Design
  • Microsoft.EntityFrameworkCore.Tools

Paketlerini browserdan bulup yüklüyoruz.

 

Resim-3

Appsettings.json içerisine veri tabanı ile bağlantı sağlayacak bağlantı bilgilerimizi yazıyoruz.

Ben burada PostgreSQL ile bağlantı kurdum siz istediğiniz veri tabanı ile bağlantı kurabilirsiniz.


Resim-4

Dependency Injection ile Context sınıfımızı uygulamaya Register edebilmek için Startup dosyası içerisindeki “ConfigureServices” metodunda aşağıdaki kodları yazıyoruz.


Resim-5

User isimli classımızı oluşturuyorum ve içerisine Migration ile veri tabanı oluşturmak istediğim tablomun modelini tanımlıyorum.


Resim-6

Modelimizi tanımladıktan sonra TableContext isimli bir class oluşturuyorum. Bu class DbContextten kalıtım almaktadır. İçerisinde User tablomun modelini çağırıyorum. Oluşturduğumuz her modeli yukarıdaki şekilde TableContextin içerisine tanımlamalıyız.
Burada dikkat edilmesi gereken nokta şudur ki; standart Entity Framework’te olduğu gibi gerekli konfigürasyon ayarları sağlayan ve tablolar arası ilişkileri gösteren bir “.edmx” uzantılı dosya bulunmamakta, direkt olarak sınıfsal bazlı nesneler üzerinden işlemler gerçekleştirilmektedir.


Resim-7

Artık Migration oluşturmak için projemiz hazır. Migration, kod kısmında yaptığımız değişikliklerin veri tabanını güncellemesini sağlayan yönteme Migration denir.
Tools à NuGet Package Manager à Package Manager Console ‘u seçiyoruz. Açılan consol sayfasına Add-Migration yazıp entera tıklıyoruz.
Bizden isim girmemizi istiyor istediğimiz ismi girip tekrar entera tıklıyoruz. Son olarak Database-Update komutunu çalıştırıyoruz böylelikle nesneler üzerindeki işlemlerimizi veri tabanına yazdıracaktır.

Resim-8

Bu konuyla ilgili sorularınızı  alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.
Referanslar

www.mshowto.org
TAGs: core,.net core nedir,asp.net core,microsoft,code first,code first nedir,migration nedir,code first kullanimi ,code first veritabani,migration kullanimi,entity framework

 

Bu İçeriğe Tepkin Ne Oldu?
  • 36
    harika_
    Harika!!
  • 2
    be_enmedim
    Beğenmedim
  • 1
    _ok_iyi
    Çok iyi
  • 0
    sevdim_
    Sevdim!
  • 2
    bilemedim_
    Bilemedim!
  • 0
    olmad_
    Olmadı!
  • 1
    k_zd_m_
    Kızdım!

Trakya Üniversitesi Bilgisayar Mühendisliği bölümünden 2018 yılında mezun oldum. Öğrenim hayatımda bir çok otomasyon ve Web tasarım projelerinde(Microsoft Visual Studio, C# .NET, Asp.NET,Microsoft SQL Server, MVC .NET alanlarında) yer aldım. 2017 yılında gönüllü stajyer olarak işe başladığım Asis Elektronik ve Bilişim Sistemleri A.Ş' de mezun olduktan hemen sonra Yazılım Uzman Yardımcısı olarak işe başladım. Asp.NET MVC ve .NET CORE üzerine kariyerime yön vermekteyim. Yanı sıra Ms-Sql Server alanında kendimi geliştirmeye devam ediyorum.

Yazarın Profili

Bültenimize Katılın

Tıklayın, üyemiz olun ve yeni güncellemelerden haberdar olan ilk kişi siz olun.

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir