Middle
Kas ir izmaiņu uzskaite (change tracking)?
sobes.tech AI
Atbilde no AI
Izmaiņu uzskaite – tas ir mehānisms ORM (Object-Relational Mapper), piemēram, Entity Framework, kas uzrauga objektu (entītiju) stāvokli datu kontekstā. Tas nosaka, kuri entītija ir pievienota, mainīta vai dzēsta, lai datu bāzē tiktu izpildīti atbilstoši INSERT, UPDATE vai DELETE komandas.
Entītiju stāvokļi:
- Added: Objekts tikko izveidots un pievienots kontekstam, bet vēl nav saglabāts datu bāzē.
- Unchanged: Objekts ir ielādēts no datu bāzes vai ir saglabāts, un nav veiktas izmaiņas.
- Modified: Viens vai vairāki objekta īpašumi ir mainīti pēc ielādes no datu bāzes vai saglabāšanas.
- Deleted: Objekts ir atzīmēts dzēšanai no datu bāzes.
- Detached: Objekts nav uzraudzīts datu kontekstā.
// Izmaiņu uzraudzības piemērs Entity Framework Core
using (var context = new MyDbContext())
{
// Entītijas ielāde
var myEntity = context.MyEntities.Find(1);
// Sākotnējā stāvokļa pārbaude
Console.WriteLine($"Initial state: {context.Entry(myEntity).State}"); // Izvadīs Unchanged
// Īpašības maiņa
myEntity.MyProperty = "New Value";
// Stāvokļa pārbaude pēc izmaiņām
Console.WriteLine($"State after modification: {context.Entry(myEntity).State}"); // Izvadīs Modified
// Jaunas entītijas pievienošana
var newEntity = new MyEntity { MyProperty = "Another New One" };
context.MyEntities.Add(newEntity);
// Pievienotās entītijas stāvokļa pārbaude
Console.WriteLine($"State of new entity: {context.Entry(newEntity).State}"); // Izvadīs Added
// Entītijas dzēšana
context.MyEntities.Remove(myEntity);
// Dzēstās entītijas stāvokļa pārbaude
Console.WriteLine($"State after removal: {context.Entry(myEntity).State}"); // Izvadīs Deleted
// Izmaiņu saglabāšana datu bāzē
context.SaveChanges();
}