Rumah > pembangunan bahagian belakang > C++ > Rangka Kerja Entiti 4: Bila hendak menggunakan `AttachObject` lwn. `AddObject`?

Rangka Kerja Entiti 4: Bila hendak menggunakan `AttachObject` lwn. `AddObject`?

Mary-Kate Olsen
Lepaskan: 2025-01-10 14:02:42
asal
452 orang telah melayarinya

Entity Framework 4: When to Use `AttachObject` vs. `AddObject`?

Rangka Kerja Entiti 4: Menguasai AddObject dan Attach

Penggunaan Rangka Kerja Entiti yang berkesan bergantung pada pemahaman peranan berbeza ObjectSet.AddObject dan ObjectSet.Attach. Semasa AddObject memasukkan entiti baharu, Attach mengurus entiti sedia ada. Walau bagaimanapun, situasi yang memerlukan Attach boleh diubah.

Satu kes penggunaan utama untuk Attach melibatkan entiti yang diasingkan daripada konteks. Ini sering berlaku selepas mendapatkan semula entiti dan seterusnya menutup konteks. Untuk melibatkan semula entiti ini untuk pengubahsuaian, gunakan Attach:

var existingPerson = new Person { Name = "Joe Bloggs" };
ctx.Persons.Attach(existingPerson);
existingPerson.Name = "Joe Briggs";
ctx.SaveChanges();
Salin selepas log masuk

Ini menjana pernyataan UPDATE, mengelakkan pengambilan semula pangkalan data yang berlebihan.

Satu lagi aplikasi berharga Attach ialah menghubungkan entiti sedia ada yang dilampirkan konteks yang tidak mempunyai hubungan automatik. Pertimbangkan entiti Person dengan Addresses sifat navigasi (kumpulan Address entiti). Jika anda telah memuatkan kedua-dua objek Person dan Address tetapi hubungannya tidak diwujudkan, Attach menyediakan penyelesaian:

var existingPerson = ctx.Persons.SingleOrDefault(p => p.Name == "Joe Bloggs");
var myAddress = ctx.Addresses.First(a => a.PersonID != existingPerson.PersonID);
existingPerson.Addresses.Attach(myAddress);
ctx.SaveChanges();
Salin selepas log masuk

Di sini, Attach mengemas kini perhubungan tanpa mengubah suai entiti itu sendiri.

Atas ialah kandungan terperinci Rangka Kerja Entiti 4: Bila hendak menggunakan `AttachObject` lwn. `AddObject`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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