Dalam Rangka Kerja Entiti, pengendalian senario mengemas kini baris sedia ada atau memasukkan baris baharu boleh dicapai dengan cekap melalui pelbagai pendekatan .
1. Menggunakan Keadaan Objek:
Jika entiti yang akan dikemas kini dilampirkan pada konteks dan keadaannya Dipisahkan, ia boleh ditambah menggunakan context.MyEntities.AddObject(myEntity). Objek yang dilampirkan akan menjejak pengubahsuaian secara automatik dan menyimpannya ke pangkalan data semasa memanggil konteks.SaveChanges().
2. Menggunakan Kunci Entiti:
Jika kunci entiti diketahui, ia boleh digunakan untuk menentukan sama ada entiti itu wujud. Jika kuncinya bukan sifar, entiti boleh dilampirkan menggunakan context.MyEntities.Attach(myEntity), dan keadaannya ditukar kepada Modified:
if (myEntity.Id != 0) { context.MyEntities.Attach(myEntity); context.ObjectStateManager.ChangeObjectState(myEntity, EntityState.Modified); } else { context.MyEntities.AddObject(myEntity); }
3. Menggunakan Pertanyaan Carian:
Dalam kes di mana kunci entiti tidak tersedia, pertanyaan carian boleh dilaksanakan untuk menyemak kewujudannya:
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); }
Pendekatan ini menyediakan yang cekap dan fleksibel cara untuk melaksanakan logik "kemas kini baris jika wujud, jika tidak masukkan baris baharu" dengan Rangka Kerja Entiti. Pilihan kaedah mungkin bergantung pada ketersediaan kunci entiti dan konteks khusus aplikasi.
Atas ialah kandungan terperinci Bagaimana untuk Mengemas kini atau Memasukkan Baris dalam Rangka Kerja Entiti: Logik Upsert Dijelaskan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!