Entity Framework Core Nedir?
Entity Framework Core (EF Core), Microsoft'un .NET platformu için geliştirdiği açık kaynaklı ORM (Object-Relational Mapper) kütüphanesidir. Geleneksel ADO.NET'te yazılan verbose SQL sorgularının yerine C# nesneleri üzerinden veritabanı işlemleri yapılmasını sağlar. EF Core; SQL Server, PostgreSQL, MySQL ve SQLite gibi farklı veritabanı motorlarını destekler.
Code First Yaklaşımı
EF Core'da en yaygın kullanılan yaklaşım Code First'tir: önce C# modelleri yazılır, sonra migration ile veritabanı şeması otomatik oluşturulur:
public class Urun {
public int Id { get; set; }
public string Ad { get; set; }
public decimal Fiyat { get; set; }
public int KategoriId { get; set; }
public Kategori Kategori { get; set; }
}
public class AppDbContext : DbContext {
public DbSet<Urun> Urunler { get; set; }
public DbSet<Kategori> Kategoriler { get; set; }
}
Migration Yönetimi
// Migration oluşturma
dotnet ef migrations add IlkMigration
// Veritabanına uygulama
dotnet ef database update
CRUD İşlemleri
// Veri ekleme
var urun = new Urun { Ad = "Klavye", Fiyat = 450 };
context.Urunler.Add(urun);
await context.SaveChangesAsync();
// Sorgulama
var pahaliUrunler = await context.Urunler
.Where(u => u.Fiyat > 200)
.Include(u => u.Kategori)
.OrderBy(u => u.Ad)
.ToListAsync();
İlişkiler: One-to-Many ve Many-to-Many
EF Core fluent API veya data annotation ile ilişki konfigürasyonu yapılır. Navigation property'ler üzerinden related data Include ile eager loading veya lazy loading ile yüklenir.
Performans İpuçları
- Salt okunur sorgularda
AsNoTracking()kullanın. - Büyük veri setlerinde
Skip/Takeile sayfalama uygulayın. - N+1 sorgu sorununu
Includeile çözün. - Karmaşık raporlar için raw SQL (
FromSqlRaw) kullanabilirsiniz.
Bilkey C# Programlama Kursu
Bilkey Bilişim Akademisi C# Programlama Kursu'nda Entity Framework Core, ASP.NET Core ve modern C# programlama konuları uygulamalı olarak öğretilmektedir. Kurtköy merkezimizde .NET geliştirici olun. 0216 354 7979