Sobes.tech
Middle

Entity Framework necə varlıqları verilənlər bazasına yükləyir?

sobes.tech Süni İntellekt

AI-dan cavab

Entity Framework məlumat bazasına entitələri yükləyir və onların əlavə olunması, yenilənməsi və ya silinməsi üçün SQL sorğuları hazırlayır və icra edir.

Proses aşağıdakılardan ibarətdir:

  1. Dəyişikliklərin izlənməsi: DbContext hər bir entitənin vəziyyətini (Added, Modified, Deleted, Unchanged) izləyir.
  2. Əmr hazırlığı: İzlənilən dəyişikliklər əsasında Entity Framework müvafiq SQL əmrlərini (INSERT, UPDATE, DELETE) hazırlayır.
  3. Əmrlərin icrası: Hazırlanan əmrlər verilənlər bazasına göndərilir və icra olunur.

Əlavə olunmuş entitənin saxlanması nümunəsi:

// Məlumat kontekstinin yaradılması
using (var context = new MyDbContext())
{
    // Yeni entitənin yaradılması
    var newUser = new User { Name = "Иван" };

    // Entitəni kontekstə əlavə etmək
    context.Users.Add(newUser);

    // Dəyişiklikləri bazaya yadda saxlamaq
    context.SaveChanges();
}

Bu nümunədə, context.SaveChanges() yükləmə prosesini başlatır. EF INSERT INTO Users (Name) VALUES ('Иван'); tipində SQL sorğusu hazırlayır və onu verilənlər bazasında icra edir.

Entitəni yeniləmək üçün:

using (var context = new MyDbContext())
{
    // Entitəni əldə etmək
    var userToUpdate = context.Users.Find(1);

    // Xüsusiyyəti dəyişmək
    userToUpdate.Name = "Петр";

    // Dəyişiklikləri yadda saxlamaq
    context.SaveChanges();
}

Burada, SaveChanges() SQL sorğusunun UPDATE Users SET Name = 'Петр' WHERE Id = 1; hazırlanmasını və icrasını başlatır.

Entitəni silmək üçün:

using (var context = new MyDbContext())
{
    // Entitəni əldə etmək
    var userToDelete = context.Users.Find(2);

    // Entitəni kontekstdən silmək
    context.Users.Remove(userToDelete);

    // Dəyişiklikləri yadda saxlamaq
    context.SaveChanges();
}

SaveChanges() bu halda, DELETE FROM Users WHERE Id = 2; SQL sorğusunu hazırlayır və icra edir.

Entity Framework Core həmçinin toplu saxlama (batch saving) imkanını dəstəkləyir, burada bir neçə INSERT, UPDATE, DELETE əməliyyatı bir və ya bir neçə paketdə birləşdirilərək verilənlər bazasına daha səmərəli göndərilir. Bu, verilənlər bazası təminatçısından və onun imkanlarından asılıdır.