Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Mengemas kini atau Memasukkan Rekod dengan Cekap dalam Rangka Kerja Entiti?
Menggunakan Rangka Kerja Entiti untuk Kemas Kini Sedia Ada atau Memasukkan Rekod Baharu
Apabila bekerja dengan pangkalan data, selalunya perlu memastikan kemas kini dilakukan pada baris sedia ada atau baris baharu disisipkan jika ia tidak wujud. Ini boleh dicapai melalui logik "kemas kini jika wujud, jika tidak masukkan baris baharu". Dalam Rangka Kerja Entiti (EF), terdapat beberapa pendekatan untuk melaksanakan logik ini dengan cekap.
1. Menggunakan Objek Terlampir
Untuk objek yang dilampirkan (objek yang dimuatkan daripada contoh konteks yang sama), kod boleh dipermudahkan kepada:
if (context.ObjectStateManager.GetObjectStateEntry(myEntity).State == EntityState.Detached) { context.MyEntities.AddObject(myEntity); } // Attached object tracks modifications automatically context.SaveChanges();
2. Menggunakan Pengetahuan ID Objek
Jika kunci objek diketahui (mis., ID), kod tersebut boleh menggunakan pernyataan IF:
if (myEntity.Id != 0) { context.MyEntities.Attach(myEntity); context.ObjectStateManager.ChangeObjectState(myEntity, EntityState.Modified); } else { context.MyEntities.AddObject(myEntity); } context.SaveChanges();
3. Menggunakan Pertanyaan Carian
Dalam kes di mana kewujudan objek tidak dapat ditentukan daripada IDnya, pertanyaan carian boleh dilaksanakan:
var id = myEntity.Id; if (context.MyEntities.Any(e => e.Id == id)) { context.MyEntities.Attach(myEntity); context.ObjectStateManager.ChangeObjectState(myEntity, EntityState.Modified); } else { context.MyEntities.AddObject(myEntity); } context.SaveChanges();
Pendekatan ini menyediakan cara yang cekap untuk melaksanakan "kemas kini jika ia wujud, jika tidak, masukkan logik baris baharu menggunakan Rangka Kerja Entiti, memastikan pangkalan data dikemas kini atau rekod baharu ditambah sebagai diperlukan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengemas kini atau Memasukkan Rekod dengan Cekap dalam Rangka Kerja Entiti?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!