Middle
Өзгөртүүлөрдү көзөмөлдөө (change tracking) эмне?
sobes.tech AI
AIден жооп
Өзгөрүүлөрдү көзөмөлдөө — бул ORM (Object-Relational Mapper) системесинде, мисалы, Entity Framework сыяктуу, объекттердин (сущностердин) абалын көзөмөлдөөчү механизм. Ал кайсы объекттер кошулуп, өзгөртүлүп же өчүрүлгөнүн аныктап, базада өзгөртүүлөрдү сактаганда тиешелүү INSERT, UPDATE же DELETE буйруктарын аткарат.
Объекттердин абалы:
- Added: Жаңы түзүлгөн жана контекстке кошулган, бирок дагы эле базада сакталбаган объект.
- Unchanged: Базадан жүктөлгөн же сакталган жана өзгөртүүлөр болбогон объект.
- Modified: Базадан жүктөлгөндөн кийин же сакталгандан кийин бир нече мүнөздөмөсү өзгөртүлгөн объект.
- Deleted: Базадан өчүрүлүшү белгиленген объект.
- Detached: Контекст тарабынан көзөмөлдөнбөгөн объект.
// Entity Framework Coreдогу өзгөрүүлөрдү көзөмөлдөө мисалы
using (var context = new MyDbContext())
{
// Объектти жүктөө
var myEntity = context.MyEntities.Find(1);
// Баштапкы абалды текшерүү
Console.WriteLine($"Баштапкы абал: {context.Entry(myEntity).State}"); // Unchanged чыгат
// Мүнөздөмөнү өзгөртүү
myEntity.MyProperty = "New Value";
// Өзгөртүүдөн кийин абалды текшерүү
Console.WriteLine($"Өзгөртүүдөн кийин абал: {context.Entry(myEntity).State}"); // Modified чыгат
// Жаңы объектти кошуу
var newEntity = new MyEntity { MyProperty = "Another New One" };
context.MyEntities.Add(newEntity);
// Кошулган объекттин абалын текшерүү
Console.WriteLine($"Кошулган объекттин абалы: {context.Entry(newEntity).State}"); // Added чыгат
// Объектти өчүрүү үчүн белгилөө
context.MyEntities.Remove(myEntity);
// Өчүрүлүүчү объекттин абалын текшерүү
Console.WriteLine($"Өчүрүүдөн кийин абал: {context.Entry(myEntity).State}"); // Deleted чыгат
// Өзгөртүүлөрдү базада сактоо
context.SaveChanges();
}