Bu yazıda Entity Framework (EF) kullanarak Sqlite veritabanına Asp.NET Core ile nasıl bağlanılır, CRUD işlemleri nasıl yapılır, session nasıl kullanılır konularıyla ilgili bilgiler yer alıyor.
Uygulama Açıklama: Basit blog uygulaması ile kullanıcı kaydı ve girişi yapılarak makale girişi yapılıp listelenecek. Bu uygulama için kullanımı kolay olan sqlite veritabanı kullanılacak. Sqlite ile kayıt, listeleme, tekil gösterme, silme, güncelleme gibi işlemleri en basit haliyle yapılması ve session ile üye giriş mantığı anlatılacak.
Önkoşullar
Visual Studio Code - (ve Eklenti paketler .Net Core Pack )
.NET Core SDK 8
Proje öncesinde sisteminizde bulunması gereken uygulamalar yukarıda listelenmiştir.
Bu uygulamada şunları yapacağız:
Kullanıcı Girişi:
- Kullanıcılar kullanıcı adı ve şifre ile sisteme giriş yapabilecek.
- Giriş işleminde session kullanarak kimlik doğrulama yapılacak.
Makale İşlemleri:
- Kullanıcılar giriş yaptıktan sonra yeni makale ekleyebilecek ve var olan makaleleri düzenleyebilecek.
- Makaleler için başlık, içerik ve yazar bilgileri gibi bilgiler saklanacak.
- Veriler SQLite veritabanında tutulacak.
Uygulama Adımları:
Adım 1: ASP.NET Core MVC Projesi Oluştur.
proje klasörü AspBlog olsun. Klasörü Visual Studio Code uygulamasına bağladıktan sonra komut satırına(cmd) geçerek mvc deseni ekleyelim.
komut satırına
dotnet new mvc
komutu girilerek mvc deseni projeye dahil edilir.
Adım 2: Gerekli Paketleri Projeye Ekle. (Bağımlılıklar - Dependencies)
Projede Entity Framework (EF) konutlarını kullanmak ve sqlite bağlantı komutlarını kullanabilmek için bağımlılıkların kurulması gereklidir. . Bunun için yine komut satırına geçerek
dotnet add package Microsoft.EntityFrameworkCore
dotnet add package Microsoft.EntityFrameworkCore.Tools
dotnet add package Microsoft.EntityFrameworkCore.Sqlite
Adım 3: Modelleri Oluştur.
Models klasörüne iki model oluşturun:
Kullanici modeli: Kullanıcı adı ve şifre gibi giriş bilgilerini tutacak.
Makale modeli: Makale başlığı, açıklaması, içerik bilgisi gibi bilgileri tutacak.
Model - KullaniciModel.cs Dosyasını model - fare sağ tuş - new - model komutu ile oluştur.
public class KullaniciModel
{
public int Id { get; set; }
public string KullaniciAdi { get; set; }
public string Sifre { get; set; }
}
Model - MakaleModel.cs Dosyasını model - fare sağ tuş - new - model komutu ile oluştur.
public class MakaleModel
{
public int Id { get; set; }
public string Baslik { get; set; }
public string Aciklama { get; set; }
public string Icerik { get; set; }
public DateTime Kayit { get; set; } = DateTime.Now;
}
Adım 4: DBContext Oluşturun ve Bağlantı Cümlesi Ekleyin
Model klasörü içerisine AppDbContext.cs isimli yeni bir dosya oluşturarak aşağıdaki kodun yazabilirsiniz. yada vsCode uygulamanızda eklenti yüklüyse ef-dbcontext kısayolu ile context kodlarını yazdırın. Uygulamada sqlite kullanıldığı için bunu UseSqlite cümlesine çeviriyoruz.
public class AppDbContext : DbContext {
public AppDbContext() { }
public AppDbContext(DbContextOptions<AppDbContext> options) : base (options) { }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlite("Data Source = blogs.db");
}
public DbSet<KullaniciModel> Kullanicilar { get; set; }
public DbSet<MakaleModel> Makaleler{ get; set; }
}
Adım 5: Uygulama başlangıcında veritabanı ilişkisini ayarlama
Uygulama Sqlite Veritabanını kullanacak şekilde yapılandırın. Program.cs dosyasını açın ve aşağıdaki değişiklikleri yapın.
builder.Services.AddControllersWithViews();
builder.Services.AddDbContext<AppDbContext>(); // ekle
Not: Dosya başına using ifadesi ile Models klasörünün kendiliğinden eklenmesi gerekir. Aksi halde ekleyiniz. (using proje_ismi.Models;)
Adım 6: Migrations - Veritabanı için Sql Cümlesi oluşturma
Migration, veritabanı ve içerisindeki tabloları oluşturmak için sql cümlesini oluşturma işlemidir.
Migrations işlemi için model ve context oluşturulduktan sonra komut satırına aşağıdaki kod yazılır.
dotnet ef migrations add init
Migrations sonrası oluşturulan sql cümlesini veritabanına dönüştürmek için komut satırına aşağıdaki kod yazılır.
dotnet ef database update
Not: komut satırında dotnet ef komutu çalışmaz ve hata alırsanız. dotnet ef projeye dahil edilmemiş demektir. dotnet ef komutlarını çalıştırmak için komut satırına aşağıdaki kodlar yazılır.
dotnet tool install -g dotnet-ef
veya projede ef dosyalarını güncelleyebilirsiniz.
dotnet tool update -g dotnet-ef
Not: Komutlar çalışmıyorsa projedeki bin klasörünü silip tekrar deneyin.
Adım 7: Projede Kullanılacak Controller ve Viewleri Belirle.
Controllers klasörüne iki Controller oluşturun:
HomeController: Kullanıcı girişi ve çıkışı ile ilgili işlemleri, Makale listeleme ve görüntüleme işlemlerini yönetecek.
AdminController: Makale işlemleri (makale ekleme, düzenleme) ile ilgili işlemleri yönetecek.
Controller- HomeController.cs Dosyasını Controller - fare sağ tuş - new - controller komutu ile oluştur.
Views klasörüne gerekli görünümleri oluşturun:
Home klasörüne:
Index.cshtml: Kullanıcıların makaleleri liste halinde gördüğü görünüm.
Giris.cshtml: Kullanıcıların giriş yaptığı görünüm.
Cikis.cshtml: Kullanıcıların çıkış yaptığı görünüm.
Admin klasörüne:
MakaleEkle.cshtml: Kullanıcıların yeni makale eklediği görünüm.
KullaniciEkle.cshtml: Kullanıcıların yeni makale eklediği görünüm.
Devamı gelecek.