Entity Framework Core ile PostgreSQL

Fatih Güreci
4 min readAug 20, 2022

--

Bu yazıda, Entity Framework Core kullanarak bir .NET Core uygulamasının PostgreSQL veritabanına nasıl bağlanacağını öğreneceğiz.

Araçlar ve Yapılar

Bu yazıda ileriye dönük olarak aşağıdaki araçları ve yapıları kullanacağız.

  • Visual Studio 2022
  • .NET 6
  • PostgreSQL Sunucusu & pgAdmin

Adım 1: PostgreSQL Sunucusunun Kurulması

İlk olarak, geliştirme yaptığınız ortama PostgreSQL sunucusu kurmalısınız. Yüklemek için, aşağıdaki adımları izleyin:

  • Yükleyiciyi PostgreSQL web sitesinden indirin — PostgreSQL’i indirin
  • İndirdikten sonra, yükleyiciyi çalıştırın

Kurulum tamamlandıktan sonra, sisteminizde aşağıdaki bileşenlerin kurulu olduğunu göreceksiniz:

  • PostgreSQL Server — Bu veritabanı sunucusunun kendisidir.
  • pgAdmin — Bu bir yönetim aracı, Veritabanı IDE’sidir.
  • Stack Builder — PostgreSQL için ek modüller indirmek için kullanılır.
  • Command Line Tools — PostgreSQL’i yönetmek için CLI.

Yukarıdaki kurulumu doğrulamak için pgAdmin’i açın, şifrenizi girin. Aşağıdaki gibi bir şey görmelisiniz:

Adım 2: İçinde Tablo Barındıran Bir Veritabanı Oluşturun

Şimdi yeni bir veritabanı oluşturacağız ve ardından bu veritabanı içerisinde yeni bir tablo yaratacağız.

  1. Yeni bir veritabanı oluşturmak için Databases’a sağ tıklayın.

2. Veritabanı adınızı yazın ve Save butonuna tıklayın.

3. Aşağıdaki adımları izleyerek bir tablo oluşturun:

  • Query aracını seçin — Bu sorgu editörünü açacaktır
  • SQL scriptini kopyalayın
  • Run butonu ile scripti çalıştırın

4. Tablonun oluşturulduğunu doğrulayın. Resimdeki ağaç yapısını kullanarak kontrol edebilirsiniz.

Databases > ToDoManager > Schemas > public > Tables > tasks (az önce oluşturduğumuz tablo)

3. Adım: Visual Studio 2022'yi kullanarak bir ASP.NET Core 6 MVC uygulaması oluşturun

ASP.NET Core Web App (MVC) şablonunu seçerek yeni bir proje oluşturun. İhtiyacınıza göre herhangi bir proje türünü seçebilirsiniz, ancak ben sadece MVC web uygulamasını kullanıyorum.

4. Adım: Entity Framework Core’u Web Uygulamasına Ekleme

4.1 Entity Framework Core runtime’ın kurulması

.NET uygulamanızı EF Core kullanarak PostgreSQL’e bağlamak için PostgreSQL veritabanının bir .NET veri sağlayıcısına ihtiyacı olacaktır.

Bunun için, NuGet paketini kurun Npgsql.EntityFrameworkCore.PostgreSQL

4.2 Entity Framework Core araçlarının kurulması

Mevcut veritabanınızın EF sınıflarını oluşturmak için, Entity Framework Core Tools’a ihtiyacınız olacak.

EF Core’un Package Manager Console araçlarını almak için Microsoft.EntityFrameworkCore.Tools paketini yükleyin.

Şimdiye kadar aşağıdaki resimde gösterildiği gibi 2 NuGet paketi kurduk.

5. Adım: Mevcut veritabanı için EF Class’ları oluşturma

Artık gerekli tüm NuGet paketlerini yüklediğimize göre, mevcut PostgreSQL veritabanı için EF sınıfları oluşturma zamanımız geldi.

Visual Studio’ya gidin, Tools > NuGet Package Manager > Package Manager Console‘u seçin

Aşağıdaki komutu çalıştırın:

Scaffold-DbContext “Host=localhost;Database=ToDoManager;Username=DBUsername;Password=DBPassword” Npgsql.EntityFrameworkCore.PostgreSQL -OutputDir Models

Bu komut başarıyla çalıştırıldığında, Solution Explorer’daki Models klasörünü kontrol edin.

Gördüğünüz gibi, EF sınıfları oluşturuldu.

6. Adım: Entity Framework’ü kullanmak için .NET uygulamasını yapılandırın

Şimdi uygulamanızı EF Core kullanacak şekilde yapılandıralım.

  1. appsettings.json dosyasına gidin ve aşağıdaki gibi connection string ekleyin.

2. Program.cs dosyasına gidin ve dependency injection için DBContext’i IoC Container’a kaydedin.

builder.Services.AddDbContext<ToDoManagerContext>(options =>options.UseNpgsql(builder.Configuration.GetConnectionString(“ToDoManagerContext”)));

7. Adım: Controller’da EF Core kullanarak Verilere Erişme

Şimdi, tüm ayarları yaptık. Biraz kod yazalım.

  1. EF Core kullanarak PostgreSQL veritabanındaki verilere erişmek için yeni bir controller TaskController oluşturun.

2. Bu Index aksiyonu için strongly-typed view oluşturun.

3. Uygulamayı derleyin ve çalıştırmak için F5'e basın

4. Aşağıdaki gibi bir ekran görmelisiniz. (url’den Task controller’ına gitmeyi unutmayın)

Not: Burada boş bir tablo almak yerine ekranda bir satır görebilmemiz için veritabanı tablosuna bir adet dummy kayıt ekledim.

Toparlamak gerekirse

Tebrikler! Entity Framework Core kullanarak .NET uygulamanızı PostgreSQL’e başarıyla bağladınız.

Okuduğunuz için teşekkürler! Bunu beğendiyseniz, 👏 düğmesine basarak göstermekten, yorum yapmaktan ve vurgulamaktan çekinmeyin.

İyi eğlenceler ve mutlu kodlamalar!

--

--