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=****"
}
}
"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 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:
Yorum Gönder