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:
- Dəyişikliklərin izlənməsi: DbContext hər bir entitənin vəziyyətini (Added, Modified, Deleted, Unchanged) izləyir.
- Ə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.
- Ə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.