Asp.Net Core ile Code First Postgresql
Merhaba, bu yazımda son zamanlarda revaçta olan postgresql’in, asp.net core’da nasıl kullanılacağını anlatacağım.
Yeni bir Asp.Net Core 3.1 uygulaması açalım. Entityframework.core, tools, design, sqlserver gibi paketlerini yükleyelim. Postgresql’in entegresi için gerekli olan Npsql, Npsql.EntityFrameWorkCore.Sql ve Npsql.EntityFramewrokCore.PostgreSQL.Design paketleri de yükleyelim.
İlgili paketlerimizi hazır. Önce connection stringimizi appsetting.Json‘a yazalım. Postgresql’i yüklerken konfigüre ettiğiniz ayarları buraya yazınız.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
{ "ConnectionStrings": { "PostgresqlConnection": "User ID=postgres;Password=123;Server=localhost;Port=5432;Database=FirstMyDb;Integrated Security=true;Pooling=true;" }, "Logging": { "LogLevel": { "Default": "Information", "Microsoft": "Warning", "Microsoft.Hosting.Lifetime": "Information" } }, "AllowedHosts": "*" } |
Student sınıfı oluşturalım.
1 2 3 4 5 6 |
public class Student { public int Id { get; set; } public int Name { get; set; } public int Surname { get; set; } } |
Şimdi ise DbContext’ten miras alacak ApplicationContext sınıfını oluşturalım.
1 2 3 4 5 6 |
public class ApplicationContext:DbContext { public ApplicationContext(DbContextOptions<ApplicationContext> options):base(options){} public DbSet<Student> Students { get; set; } } |
Data kısmıyla ilgili kısımlarımız tamam Birtek DbContextimizi middleware da tanımlamak kaldı. Startup.cs classını açıp şu değişiklikleri yapalım. Burda önemli olan UseNpSql kullanarak ilgili connection metinimizi konfigüre etmek.
1 2 3 4 5 6 |
public void ConfigureServices(IServiceCollection services) { services.AddControllersWithViews(); services.AddDbContext<ApplicationContext>( options => options.UseNpgsql(Configuration.GetConnectionString("PostgresqlConnection"))); } |
Bu işlermleri yaptıktan sonra konsola
1 |
add-migration First |
yazarak veritabanınızı oluşturmuş bulunuyorsunuz. Eğer katmanlı mimari ile yapmış iseniz Core’u yüklediğiniz katmanı sağ tıklayıp set as startup project diyin konsolu açınca da default project olarak ApplicationContexti kurduğunuz katmanı seçip migrationu öyle çalıştırın.