Rumah >pembangunan bahagian belakang >C++ >Bagaimana Mengemas kini atau Memasukkan Baris dengan Cekap dalam Rangka Kerja Entiti?
Apabila bekerja dengan Rangka Kerja Entiti, terdapat cara yang cekap untuk melaksanakan logik untuk mengemas kini baris jika ia wujud atau memasukkan baris baharu.
Dilampirkan Objek
Jika berurusan dengan objek yang dilampirkan (objek yang dimuatkan daripada contoh konteks semasa), gunakan pendekatan berikut:
if (context.ObjectStateManager.GetObjectStateEntry(myEntity).State == EntityState.Detached) { context.MyEntities.AddObject(myEntity); } context.SaveChanges();
Objek akan menjejaki perubahan secara automatik dan Panggilan SaveChanges() akan melakukan pengemaskinian atau operasi sisipan mengikut keperluan.
Objek Tidak Berlampirkan dengan Kunci Semak
Jika nilai kunci objek tersedia, anda boleh menggunakan kod ini:
if (myEntity.Id != 0) { context.MyEntities.Attach(myEntity); context.ObjectStateManager.ChangeObjectState(myEntity, EntityState.Modified); } else { context.MyEntities.AddObject(myEntity); } context.SaveChanges();
Pendekatan ini terlebih dahulu menyemak sama ada objek itu wujud menggunakan sifat Idnya. Jika ia berlaku, ia melampirkannya pada konteks dan menandakannya sebagai diubah suai. Jika tidak, objek baharu akan ditambah.
Objek Tidak Berlampirkan tanpa Pemeriksaan Kekunci
Apabila kewujudan objek tidak dapat ditentukan oleh kuncinya, gunakan pertanyaan carian :
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 mengambil baris yang sepadan dengan kunci objek daripada pangkalan data dan melaksanakan lampiran atau penambahan berdasarkan hasil pertanyaan.
Atas ialah kandungan terperinci Bagaimana Mengemas kini atau Memasukkan Baris dengan Cekap dalam Rangka Kerja Entiti?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!