Sobes.tech
Middle

Entity Framework nasıl veritabanına varlıkları yükler?

sobes.tech yapay zeka

AI'dan gelen yanıt

Entity Framework, varlıkları veritabanına yüklerken, takip edilen değişikliklere dayanarak ekleme, güncelleme veya silme SQL sorguları oluşturur ve bunları yürütür.

İşlem şunları içerir:

  1. Değişiklik takibi: DbContext, her varlığın durumunu (Added, Modified, Deleted, Unchanged) izler.
  2. Komutların oluşturulması: Takip edilen değişikliklere dayanarak, Entity Framework uygun SQL komutlarını (INSERT, UPDATE, DELETE) oluşturur.
  3. Komutların yürütülmesi: Oluşturulan komutlar veritabanına gönderilir ve yürütülür.

Eklenmiş bir varlığı kaydetme örneği:

// Veri bağlamını oluşturma
using (var context = new MyDbContext())
{
    // Yeni bir varlık oluşturma
    var newUser = new User { Name = "Иван" };

    // Varlığı bağlama ekleme
    context.Users.Add(newUser);

    // Değişiklikleri veritabanına kaydetme
    context.SaveChanges();
}

Bu örnekte, context.SaveChanges() yükleme işlemini başlatır. EF, INSERT INTO Users (Name) VALUES ('Иван'); türünde SQL sorgusu üretir ve veritabanında yürütür.

Bir varlığı güncelleme sırasında:

using (var context = new MyDbContext())
{
    // Varlığı alma
    var userToUpdate = context.Users.Find(1);

    // Özelliği değiştirme
    userToUpdate.Name = "Петр";

    // Değişiklikleri kaydetme
    context.SaveChanges();
}

Burada, SaveChanges() SQL sorgusunun UPDATE Users SET Name = 'Петр' WHERE Id = 1; üretimini ve yürütülmesini başlatır.

Bir varlığı silme işlemi sırasında:

using (var context = new MyDbContext())
{
    // Varlığı alma
    var userToDelete = context.Users.Find(2);

    // Varlığı bağlamdan kaldırma
    context.Users.Remove(userToDelete);

    // Değişiklikleri kaydetme
    context.SaveChanges();
}

SaveChanges() bu durumda, DELETE FROM Users WHERE Id = 2; SQL sorgusunu üretir ve yürütür.

Entity Framework Core ayrıca, birden fazla INSERT, UPDATE, DELETE işleminin tek veya birkaç paket halinde toplanarak veritabanına daha verimli iletimini sağlayan toplu kaydetme (batch saving) özelliğini de destekler. Bu, veritabanı sağlayıcısına ve onun yeteneklerine bağlıdır.