ben

OMÜ , Bilgisayar Mühendisliği, 13'

15 Eylül 2022 Perşembe

DAL Katmanı

 Bu katmanda veritabanı bağlantımızı sağlayan DbContext nesnesini tanımlamamız gerekiyor. Katmana Sağ tıklayarak yeni klasör  Context adında yeni açalım. Bu klasöre de  DbContext.cs olarak yeni class açalım


public class MyDbContext:DbContext
{
        public MyDbContext(DbContextOptions<MyDbContext> options) : base(options) { }
        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
           // Map katmanındaki configurasyon dosyalarını burada belirteceğiz
        }  
        //buradada her bir modelin Dbset karşılıgını burada vereceğiz   
 }


Burada context sınıfını tamamladıktan sonra  UI katmanındaki appsettings.json dosyasına gidip connection string ayarlarını tanımlamamız gerekiyor. Sonrasında ise UI katmanına bu ayarları bildirelim

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },
  "AllowedHosts": "*",
  "ConnectionStrings": {
    "MsSql": "Server=.;database=PetrolDb;uid=sa;pwd=****"
  }

}

Burada sql serverda oluşacak olan veritabanının ismini PetrolDb olarak belirttik, sql server kurulumunda verdiğimiz şifreyide pwd kısmına açık olarak yazmanız gerekiyor.

Şimdi UI katmanındaki startup.cs dosyasına gidip context nesnesini haber verelim.

Configurasyon için constructor sınıfını oluşturalım.

 IConfiguration _configuration;
 public Startup(IConfiguration configuration)
{
      _configuration = configuration;
 }

 public void ConfigureServices(IServiceCollection services)
{
            services.AddDbContext<MyDbContext>(options=> options.UseSqlServer(_configuration["ConnectionStrings:Mssql"]));
}

Context nesnemizi tanımladık. DAL Katmanında birde veri tabanı oluştugunda içinde bazı verilerinde otomatik yüklenmesi için  initializer data yapısını kurmamız gerekiyor. Bunun için bu katmanda Initializer  adında klasör açalım ve içine de  DataInitializer adında class açalım ve içinede model builder yapısını kuralım.


 public static class DataInitializer
    {
        public static void Seed(ModelBuilder modelBuilder)
        {
           // Burada tablolar için eklenecek verileri yazacağız
        }
    }

Şuan için DAL Katmanı migration işlemi için hazır durumda, Projeye başladığımızda modellerimizi yazdıktan sonra bu katmanda migration işlemi yaparak sql serverda veri tabanı oluşturabiliriz.

katmanımızın son durumu:





Hiç yorum yok: