Rumah >pembangunan bahagian belakang >C++ >Rangka Kerja Entiti 4: Bila hendak menggunakan `AttachObject` lwn. `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
:
<code class="language-csharp">var existingPerson = new Person { Name = "Joe Bloggs" }; ctx.Persons.Attach(existingPerson); existingPerson.Name = "Joe Briggs"; ctx.SaveChanges();</code>
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:
<code class="language-csharp">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();</code>
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!