Bir önceki dersimizde hazır bir şablonu projemize dahil etmiştik. Bu dersimizde ise veri tabanı işlemlerini gerçekleştireceğiz. Bu uygulamada sqlite veri tabanını kullanacağız.
Önceliklele veri tabanı için gerekli kütüphaneleri projeye yükleyelim. Bunun için Manage Nuget Packages paketini kullanabiliriz. Proje isminin üzerine gelelim ve farenin sağ tuşuna basalım. Ekrana gelen içerik menüsünden Manage Nuget Packages komutunu çalıştrıalım. Gelen sayfada Browse sekmesini açalım. Metin kutusuna entity tools yazalım. Microsoft.EntityFramworkCore.Tools kütüphanesini kuralım. Bu kütüphane ile birlikte Design kütüphanesi de kurulacaktır. Metin kutusuna entity sqlite yazalım. Microsoft.EntityFrameWorkCore.Sqlite kütüphanesini kuralım. Böylece veri tabanı için gerekli kütüphaneleri kurmuş olduk.
Tablo ile saklayacağımız bilgilerin sütun başlıklarının belirlendiği modelimizi oluşturalım. Ben bunun Models klasöründe Ilan isminde bir class dosyası oluşturdum. İçeriği aşağıdaki gibi olacaktır.
public class Ilan
{
public int Id { get; set; }
public string? Baslik { get; set; }
public string? ResimAdi { get; set; }
public decimal Fiyati { get; set; }
public string? Renk { get; set; }
public string? Aciklama { get; set; }
public DateTime Tarih { get; set; }
[NotMapped]
public IFormFile? Dosya { get; set; }
}
Şimdi DbContext oluşturalım. Öncelikle Data isminde bir klasör oluşturalım. Bu klasör altında AppDbContext isminde bir class oluşturalım. İçeriği aşağıdaki gibi olacaktır.
public class AppDbContext : DbContext
{
public AppDbContext() { }
public AppDbContext(DbContextOptions<AppDbContext> options) : base(options) { }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlite("Data Source = ilanlardb.db");
}
public DbSet<Ilan> Ilanlar { get; set; }
}
Şimdi bu veri tabanını projeye dahil edelim. Bu işlemi gerçekleştirmek için program.cs dosyasında aşağıdaki gibi bir değişiklik yapılması gerekir.
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddMvc();
builder.Services.AddSingleton<AppDbContext>();
var app = builder.Build();
app.UseDefaultFiles();
app.UseStaticFiles();
app.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}"
);
app.Run();
Veri tabanını web sayfasına eklemeden önce veri tabanı ve tablonun oluşturulması işlemini gerçekleştirelim. Bunun için console ekranına düşmemiz gerekir. Orada bir iki tane kod yazacağız. Tools menüsünden Nuget Package Manager açılır menüsünü seçelim. Buradan Package Manager Console diyerek komut satırına düşelim. Öncelikle oluşturduğumuz model yapısına uygun tablo işlemlerini gerçekleştirmemiz gerekir. Bu işleme migration denir. Komut satırına şunu yazalım.
Add-Migration SqliteData
Bu komutu yazdıktan sonra projemize Migrations isminde bir klasör eklenir. Bu klasör altında veri tabanı ve tablo oluşumu için gerekli olan dosyalar otomatik olarak yüklenir. Hazırlanan bu migration yapısına göre veri tabanını oluşturmak için aşağıdaki kodu komut satırına yazalım.
Update-Database
Projeye ilanlardb.db isimli veri tabanının eklendiğini görürsünüz.