Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Mengemas kini atau Memasukkan Baris dalam Rangka Kerja Entiti: Logik Upsert Dijelaskan?

Bagaimana untuk Mengemas kini atau Memasukkan Baris dalam Rangka Kerja Entiti: Logik Upsert Dijelaskan?

Linda Hamilton
Lepaskan: 2025-01-06 18:24:38
asal
243 orang telah melayarinya

How to Update or Insert Rows in Entity Framework: Upsert Logic Explained?

Kemas kini Baris jika Wujud Lain Masukkan Logik dengan Rangka Kerja Entiti

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);
}
Salin selepas log masuk

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);
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan