crazy_coder
Moderatör
- Katılım
- 20 Şub 2026
- Mesajlar
- 204
- Tepkime puanı
- 0
- Puanları
- 16
Entity Framework Core: Code First ile Veritabanı Mimarisi
EF Core, bir Object-Relational Mapper (ORM) aracıdır. Görevi şudur: Sizin C# sınıflarınızı veritabanındaki tablolara, bu sınıflardan ürettiğiniz nesneleri ise tablodaki satırlara dönüştürür. SQL sorguları yazmak yerine LINQ metotlarını kullanmanıza olanak tanır.
1. Code First Yaklaşımı Nedir?
Code First, "Önce Kod" demektir. Siz veritabanına gidip tablo oluşturmazsınız; C# tarafında sınıflarınızı ve özelliklerinizi yazarsınız, EF Core bu kodlara bakarak veritabanını sizin yerinize otomatik olarak oluşturur veya günceller.
Temel Bileşenler:
[]Entity (Varlık): Veritabanındaki bir tabloyu temsil eden sınıftır.
[]DbContext:** Veritabanı ile uygulama arasındaki köprüdür. Sorguların ve bağlantıların yönetildiği merkezdir.
[*]Migration (Göç): Kodda yaptığınız değişikliklerin veritabanına yansıtılma sürecidir.
2. Örnek Bir Senaryo: Ürün Yönetimi
Hadi, basit bir ürün tablosu tasarlayalım.
Adım 1: Entity Sınıfını Oluşturun
C#:
public class Urun
{
public int Id { get; set; } // Otomatik Primary Key olur
public string Ad { get; set; }
public decimal Fiyat { get; set; }
}
Adım 2: DbContext Sınıfını Hazırlayın
C#:
using Microsoft.EntityFrameworkCore;
public class UygulamaDbContext : DbContext
{
// Hangi sınıfların tablo olacağını belirtiyoruz
public DbSet<Urun> Urunler { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
// Bağlantı cümlesini burada veya Program.cs'de belirtebilirsiniz
optionsBuilder.UseSqlServer("Server=.;Database=UrunDb;Trusted_Connection=True;");
}
}
3. Migration: Kodun Veritabanına Dönüşümü
Kodunuz hazır olduktan sonra "Package Manager Console" üzerinden şu iki komutu sırayla çalıştırırsınız:
[]Add-Migration İlkKurulum: EF Core sınıfları inceler ve veritabanı şemasını oluşturmak için bir C# dosyası hazırlar.
[]Update-Database: Hazırlanan bu şemayı gerçek veritabanına uygular ve tabloları oluşturur.
4. Veri Ekleme ve Sorgulama (LINQ Gücü)
Veritabanı oluştuktan sonra veri eklemek veya çekmek bir liste işlemi kadar kolaydır:
C#:
using var context = new UygulamaDbContext();
// Veri Ekleme
context.Urunler.Add(new Urun { Ad = "Laptop", Fiyat = 25000 });
context.SaveChanges(); // SQL'deki COMMIT karşılığı
// Veri Çekme (LINQ)
var pahaliUrunler = context.Urunler.Where(u => u.Fiyat > 20000).ToList();
Neden EF Core Kullanmalıyız?
| Avantaj | Açıklama |
|---|---|
| Hız | CRUD (Ekle, Sil, Güncelle) işlemleri için SQL yazma zahmetini bitirir. |
| Bakım | Veritabanı şeması kodun içinde olduğu için versiyon takibi kolaydır. |
| Güvenlik | SQL Injection gibi saldırılara karşı otomatik koruma sağlar. |
Sonuç
EF Core, modern .NET geliştirmede veritabanı katmanının (Data Access Layer) vazgeçilmezidir. Code First yaklaşımıyla veritabanını kodun bir parçası haline getirerek, yazılım geliştirme sürecini çok daha akıcı ve hatasız bir hale getirebilirsiniz.