Entity Framework ile CRUD İşlemleri: Kurulum ve Uygulama Örnekleri

Bu yazıda, Entity Framework (EF) kullanarak veritabanı işlemleri yapmayı göstereceğiz. EF, .NET uygulamaları ile veritabanı etkileşimini kolaylaştıran güçlü bir Object-Relational Mapping (ORM) aracıdır. CRUD işlemleri (Create, Read, Update, Delete) veritabanı işlemlerinin temelidir.

1. Entity Framework Kurulumu

Entity Framework'ü projene dahil etmek için NuGet paket yöneticisini kullanacağız. Aşağıdaki adımları takip ederek kurulum yapabilirsin.

  1. Proje Oluşturma:

    • Visual Studio'yu aç ve yeni bir Console Application projesi oluştur.
  2. NuGet Paketini Yükleme:

    • Projende sağ tıklayarak NuGet Package Manager -> Manage NuGet Packages sekmesine git.
    • Browse sekmesinde Microsoft.EntityFrameworkCore paketini ara ve yükle.
    • İstersen, Paket Yöneticisi Konsolu üzerinden şu komutu kullanarak yükleme yapabilirsin:
Install-Package Microsoft.EntityFrameworkCore

Veritabanı Bağlantısı:

  • Veritabanına bağlanabilmek için DbContext sınıfını oluşturman gerek.

 

2. DbContext ve Model Sınıfının Tanımlanması

Öncelikle bir model ve DbContext sınıfı oluşturmalıyız.

using Microsoft.EntityFrameworkCore;

public class ApplicationDbContext : DbContext
{
    public DbSet<Product> Products { get; set; }

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        optionsBuilder.UseSqlServer(@"Server=.\SQLEXPRESS;Database=EFTestDb;Trusted_Connection=True;");
    }
}

public class Product
{
    public int Id { get; set; }
    public string Name { get; set; }
    public decimal Price { get; set; }
}
  • ApplicationDbContext sınıfı, veritabanı bağlantısını yönetir.
  • Product sınıfı, veritabanında bir ürün tablosunu temsil eder.

 

 

3. CRUD İşlemleri Örnekleri

Create - Veri Ekleme

Veritabanına yeni bir ürün eklemek için Add metodu kullanılabilir. İşte bir örnek:

public static void CreateProduct()
{
    using (var context = new ApplicationDbContext())
    {
        var product = new Product
        {
            Name = "Laptop",
            Price = 1500.00M
        };

        context.Products.Add(product);
        context.SaveChanges();
    }
}

 

  • Add metodu, yeni bir nesneyi veritabanına ekler.
  • SaveChanges metodu, yapılan değişiklikleri veritabanına kaydeder.

 

Read - Veri Okuma

Veritabanından veri okumak için Find veya FirstOrDefault gibi metotlar kullanılabilir.

public static void ReadProduct(int productId)
{
    using (var context = new ApplicationDbContext())
    {
        var product = context.Products.FirstOrDefault(p => p.Id == productId);
        
        if (product != null)
        {
            Console.WriteLine($"Product ID: {product.Id}, Name: {product.Name}, Price: {product.Price}");
        }
        else
        {
            Console.WriteLine("Product not found.");
        }
    }
}

FirstOrDefault metodu, belirtilen koşula uyan ilk öğeyi döndürür. Eğer öğe bulunamazsa null döner.

 

Update - Veri Güncelleme

Var olan bir veriyi güncellemek için nesneyi bulup değerlerini değiştirebilirsin.

public static void UpdateProduct(int productId, string newName, decimal newPrice)
{
    using (var context = new ApplicationDbContext())
    {
        var product = context.Products.FirstOrDefault(p => p.Id == productId);

        if (product != null)
        {
            product.Name = newName;
            product.Price = newPrice;
            context.SaveChanges();
        }
    }
}
  • SaveChanges metodu, nesnede yapılan değişiklikleri veritabanına kaydeder.
  • Burada, ürünün ismini ve fiyatını güncelledik.

 

Delete - Veri Silme

Bir ürünü silmek için Remove metodunu kullanabiliriz.

public static void DeleteProduct(int productId)
{
    using (var context = new ApplicationDbContext())
    {
        var product = context.Products.FirstOrDefault(p => p.Id == productId);

        if (product != null)
        {
            context.Products.Remove(product);
            context.SaveChanges();
        }
    }
}
  • Remove metodu, belirli bir nesneyi veritabanından siler.
  • SaveChanges metodu değişiklikleri kaydeder.

 

4. Sonuçlar ve İpuçları

  • Entity Framework, veritabanı işlemlerini daha az kod ile ve daha güvenli bir şekilde yapmamızı sağlar.
  • DbContext sınıfı, veritabanı işlemlerini yönetirken, CRUD işlemleri için basit ve anlaşılır bir API sağlar.
  • Her CRUD işleminde SaveChanges metodunu çağırarak, yapılan değişiklikleri veritabanına kaydediyoruz.

Bu örnekler, EF ile temel veritabanı işlemlerini nasıl gerçekleştirebileceğini gösterdi. Gelişmiş özellikleri kullanarak daha karmaşık işlemler de gerçekleştirebilirsin, örneğin ilişkili tablolarda işlemler yapma, transaction yönetimi vb.

Herhangi bir sorunuz varsa ya da başka bir konuda yardım isterseniz, size yardımcı olmaktan memnuniyet duyarım!