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:
- Izmaiņu uzraudzība: DbContext uzrauga katras entītijas stāvokli (Pievienots, Mainīts, Dzēsts, Nemainīts).
- Komandu ģenerēšana: Balstoties uz uzraudzītajām izmaiņām, Entity Framework ģenerē atbilstošas SQL komandas (INSERT, UPDATE, DELETE).
- 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.