Entity Framework Core ile PostgreSQL
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.
- 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.
- 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.
- 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!