Kuidas laadib Entity Framework andmeid andmebaasi?
sobes.tech AI
Vastus AI-lt
Entity Framework laadib entiteedid andmebaasi, koostades SQL-päringuid andmete sisestamiseks, uuendamiseks või kustutamiseks, tuginedes muudatustele, mida jälgitakse andmekontekstis, ning seejärel täites need.
Protsess hõlmab:
- Muudatuste jälgimine: DbContext jälgib iga entiteedi seisundit (Lisatud, Muudetud, Kustutatud, Muutumatud).
- Käskude genereerimine: Muudatuste jälgimise põhjal genereerib Entity Framework vastavad SQL-käsud (INSERT, UPDATE, DELETE).
- Käskude täitmine: Genereeritud käsud saadetakse andmebaasi ja täidetakse.
Näide lisatud entiteedi salvestamisest:
// Andmekonteksti loomine
using (var context = new MyDbContext())
{
// Uue entiteedi loomine
var newUser = new User { Name = "Ivan" };
// Entiteedi lisamine konteksti
context.Users.Add(newUser);
// Muudatuste salvestamine andmebaasi
context.SaveChanges();
}
Selles näites algatab context.SaveChanges() protsessi. EF genereerib SQL-päringu: INSERT INTO Users (Name) VALUES ('Ivan'); ja täidab selle andmebaasis.
Entiteedi uuendamisel:
using (var context = new MyDbContext())
{
// Entiteedi saamine
var userToUpdate = context.Users.Find(1);
// Omaduse muutmine
userToUpdate.Name = "Petr";
// Muudatuste salvestamine
context.SaveChanges();
}
Siin genereerib SaveChanges() SQL-päringu: UPDATE Users SET Name = 'Petr' WHERE Id = 1;.
Entiteedi kustutamisel:
using (var context = new MyDbContext())
{
// Entiteedi saamine
var userToDelete = context.Users.Find(2);
// Entiteedi eemaldamine kontekstist
context.Users.Remove(userToDelete);
// Muudatuste salvestamine
context.SaveChanges();
}
SaveChanges() genereerib ja täidab SQL-päringu: DELETE FROM Users WHERE Id = 2;.
Entity Framework Core toetab ka partii salvestamise võimalust, kus mitu INSERT, UPDATE, DELETE operatsiooni ühendatakse üheks või mitmeks paketiks, et neid andmebaasi tõhusamalt saata. See sõltub andmebaasi pakkujast ja selle võimalustest.