Ako načítava Entity Framework entity do databázy?
sobes.tech AI
Odpoveď od AI
Entity Framework načítava entity do databázy prostredníctvom tvorby SQL dopytov na vloženie, aktualizáciu alebo odstránenie údajov na základe zmien sledovaných v dátovom kontexte a ich následného vykonania.
Proces zahŕňa:
- Sledovanie zmien: DbContext sleduje stav každej entity (Pridané, Upravené, Odstránené, Nezmenené).
- Generovanie príkazov: Na základe sledovaných zmien Entity Framework generuje príslušné SQL príkazy (INSERT, UPDATE, DELETE).
- Vykonanie príkazov: Vygenerované príkazy sa odosielajú do databázy a vykonávajú.
Príklad uloženia pridané entity:
// Vytvorenie dátového kontextu
using (var context = new MyDbContext())
{
// Vytvorenie novej entity
var newUser = new User { Name = "Ivan" };
// Pridanie entity do kontextu
context.Users.Add(newUser);
// Uloženie zmien do databázy
context.SaveChanges();
}
V tomto príklade context.SaveChanges() iniciuje proces načítania. EF generuje SQL dopyt typu INSERT INTO Users (Name) VALUES ('Ivan'); a vykoná ho v databáze.
Pri aktualizácii entity:
using (var context = new MyDbContext())
{
// Získanie entity
var userToUpdate = context.Users.Find(1);
// Zmena vlastnosti
userToUpdate.Name = "Petr";
// Uloženie zmien
context.SaveChanges();
}
Tu SaveChanges() iniciuje generovanie a vykonanie SQL dopytu UPDATE Users SET Name = 'Petr' WHERE Id = 1;.
Pri odstránení entity:
using (var context = new MyDbContext())
{
// Získanie entity
var userToDelete = context.Users.Find(2);
// Odstránenie entity z kontextu
context.Users.Remove(userToDelete);
// Uloženie zmien
context.SaveChanges();
}
SaveChanges() v tomto prípade povedie k vygenerovaniu a vykonaniu SQL dopytu DELETE FROM Users WHERE Id = 2;.
Entity Framework Core tiež podporuje možnosť dávkového ukladania (batch saving), keď sa viaceré operácie INSERT, UPDATE, DELETE spoja do jedného alebo viacerých balíkov pre efektívnejšie odoslanie do databázy. To závisí od poskytovateľa databázy a jeho možností.