Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Mengemas kini Sifat Tertentu dengan Cekap dalam Rangka Kerja Entiti 5 dengan Pertanyaan Pangkalan Data Tunggal?
Rangka Kerja Entiti 5: Kemas kini rekod dengan cekap dan ubah suai atribut dengan tepat
Dalam persekitaran ASP.NET MVC3, Rangka Kerja Entiti 5 menyediakan berbilang kaedah untuk mengemas kini rekod. Setiap pendekatan mempunyai kebaikan dan keburukan, tetapi kedua-duanya tidak memenuhi matlamat untuk menentukan perubahan harta secara serentak, mengecualikan medan sensitif daripada paparan dan meminimumkan pertanyaan pangkalan data.
Perbincangan kaedah dan penilaian
Kaedah 1: Muatkan rekod asal dan kemas kini atribut satu demi satu
Kaedah 2: Muatkan rekod asal dan tetapkan nilai yang diubah
Kaedah 3: Lampirkan rekod yang dikemas kini dan tetapkan EntityState kepada Diubahsuai
Penyelesaian: Pertanyaan pangkalan data tunggal untuk mencapai kemas kini atribut yang tepat
Untuk mengambil kira selektiviti atribut, kecekapan pertanyaan pangkalan data dan keselamatan paparan, penyelesaian yang menggabungkan kaedah 1 dan kaedah 3 adalah paling sesuai. Gunakan kaedah Attach() dan SetState() untuk mengemas kini rekod dengan satu pertanyaan, menentukan sifat yang diubah suai satu demi satu.
<code class="language-csharp">db.Users.Attach(updatedUser); var entry = db.Entry(updatedUser); entry.Property(e => e.Email).IsModified = true; // 其他已更改的属性 db.SaveChanges();</code>
Pendekatan ini menyediakan cara ringkas untuk memenuhi keperluan yang ditetapkan. Dengan menetapkan secara manual sifat IsModified bagi medan tertentu, hanya sifat yang dikemas kini dihantar ke pangkalan data, mengurangkan overhed pertanyaan yang tidak diperlukan sambil melindungi data sensitif dan memastikan pangkalan data dikemas kini dengan cekap.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengemas kini Sifat Tertentu dengan Cekap dalam Rangka Kerja Entiti 5 dengan Pertanyaan Pangkalan Data Tunggal?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!