Sobes.tech
Middle

Kā Entity Framework ielādē entītijas datu bāzē?

sobes.tech AI

Atbilde no AI

Entity Framework ielādē entītijas datu bāzē, veidojot SQL vaicājumus ievietošanai, atjaunināšanai vai dzēšanai, balstoties uz izmaiņām, kas tiek uzraudzītas datu kontekstā, un to turpmāku izpildi.

Procesā ietilpst:

  1. Izmaiņu uzraudzība: DbContext uzrauga katras entītijas stāvokli (Pievienots, Mainīts, Dzēsts, Nemainīts).
  2. Komandu ģenerēšana: Balstoties uz uzraudzītajām izmaiņām, Entity Framework ģenerē atbilstošas SQL komandas (INSERT, UPDATE, DELETE).
  3. Komandu izpilde: Ģenerētās komandas tiek nosūtītas uz datu bāzi un izpildītas.

Piemērs, kā saglabāt pievienotu entītiju:

// Datu konteksta izveide
using (var context = new MyDbContext())
{
    // Jaunas entītijas izveide
    var newUser = new User { Name = "Ivans" };

    // Entītijas pievienošana kontekstam
    context.Users.Add(newUser);

    // Izmaiņu saglabāšana datu bāzē
    context.SaveChanges();
}

Šajā piemērā context.SaveChanges() uzsāk procesu. EF ģenerē SQL vaicājumu: INSERT INTO Users (Name) VALUES ('Ivans'); un to izpilda datu bāzē.

Atjauninot entītiju:

using (var context = new MyDbContext())
{
    // Entītijas iegūšana
    var userToUpdate = context.Users.Find(1);

    // Īpašības maiņa
    userToUpdate.Name = "Pēters";

    // Izmaiņu saglabāšana
    context.SaveChanges();
}

Šeit SaveChanges() ģenerē un izpilda SQL vaicājumu: UPDATE Users SET Name = 'Pēters' WHERE Id = 1;.

Dzēšot entītiju:

using (var context = new MyDbContext())
{
    // Entītijas iegūšana
    var userToDelete = context.Users.Find(2);

    // Entītijas dzēšana no konteksta
    context.Users.Remove(userToDelete);

    // Izmaiņu saglabāšana
    context.SaveChanges();
}

SaveChanges() šajā gadījumā ģenerēs un izpildīs SQL vaicājumu: DELETE FROM Users WHERE Id = 2;.

Entity Framework Core arī atbalsta pakotņu saglabāšanas iespēju, kad vairākas INSERT, UPDATE, DELETE operācijas tiek apvienotas vienā vai vairākos paketēs, lai efektīvāk nosūtītu uz datu bāzi. Tas ir atkarīgs no datu bāzes nodrošinātāja un tā iespējām.