Sobes.tech
Middle

Entity Framework qanday qilib ma'lumotlar bazasiga ob'ektlarni yuklaydi?

sobes.tech AI

AIdan javob

Entity Framework ma'lumotlar bazasiga entitlarni yuklaydi, ularni qo'shish, yangilash yoki o'chirish uchun SQL so'rovlarini tuzib, ularni bajaradi.

Jarayon quyidagilarni o'z ichiga oladi:

  1. O'zgarishlarni kuzatish: DbContext har bir entitining holatini (Added, Modified, Deleted, Unchanged) kuzatadi.
  2. Buyruqlarni yaratish: Kuzatilgan o'zgarishlarga asoslanib, Entity Framework mos SQL buyruqlarini (INSERT, UPDATE, DELETE) ishlab chiqaradi.
  3. Buyruqlarni bajarish: Yaratilgan buyruqlar ma'lumotlar bazasiga yuboriladi va bajariladi.

Qo'shilgan entitni saqlash misoli:

// Ma'lumotlar kontekstini yaratish
using (var context = new MyDbContext())
{
    // Yangi entitni yaratish
    var newUser = new User { Name = "Иван" };

    // Entitni kontekstga qo'shish
    context.Users.Add(newUser);

    // O'zgarishlarni bazaga saqlash
    context.SaveChanges();
}

Ushbu misolda, context.SaveChanges() yuklash jarayonini boshlaydi. EF INSERT INTO Users (Name) VALUES ('Иван'); SQL so'rovini ishlab chiqaradi va uni ma'lumotlar bazasida bajaradi.

Entitni yangilashda:

using (var context = new MyDbContext())
{
    // Entitni olish
    var userToUpdate = context.Users.Find(1);

    // Xususiyatni o'zgartirish
    userToUpdate.Name = "Петр";

    // O'zgarishlarni saqlash
    context.SaveChanges();
}

Bu yerda, SaveChanges() SQL so'rovini UPDATE Users SET Name = 'Петр' WHERE Id = 1; ishlab chiqaradi va bajaradi.

Entitni o'chirishda:

using (var context = new MyDbContext())
{
    // Entitni olish
    var userToDelete = context.Users.Find(2);

    // Entitni kontekstdan o'chirish
    context.Users.Remove(userToDelete);

    // O'zgarishlarni saqlash
    context.SaveChanges();
}

SaveChanges() bu holatda, DELETE FROM Users WHERE Id = 2; SQL so'rovini ishlab chiqaradi va bajaradi.

Entity Framework Core shuningdek, bir nechta INSERT, UPDATE, DELETE operatsiyalarini bitta yoki bir nechta paketga birlashtirish imkonini beradigan partiyaviy saqlash (batch saving) imkoniyatini ham qo'llab-quvvatlaydi. Bu ma'lumotlar bazasi provayderi va uning imkoniyatlariga bog'liq.