İçeriğe geç

C# Entity Framework Core ile Veritabanı İşlemleri

18.06.2024 4,636 okunma

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/Take ile sayfalama uygulayın.
  • N+1 sorgu sorununu Include ile çö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

c# entity framework core ef core kullanımı c# orm veritabanı c# migration c# dbcontext
C# Programlama Eğitimi hakkında bilgi almak ister misiniz?

Birebir özel yüz yüze eğitim yada uzaktan eğitim, esnek ders saatleri ile Pendik Kurtköy'de.