Rumah >pangkalan data >tutorial mysql >Bagaimana Mengemas kini Medan Tunggal dalam Rangka Kerja Entiti dengan Cekap?
Rangka Kerja Entiti ialah pemeta hubungan objek (ORM) yang merapatkan jurang antara pengaturcaraan berorientasikan objek dan pangkalan data hubungan. Ia menyediakan cara untuk memetakan objek ke jadual pangkalan data dan sebaliknya, dengan itu memudahkan operasi membaca, mengemas kini dan memadam data.
Apabila menggunakan EF, tugas biasa ialah mengemas kini satu medan dalam jadual. Sebagai contoh, anda mungkin perlu menukar kata laluan pengguna atau mengemas kini alamat e-mel mereka. Dalam artikel ini, kami akan meneroka cara mengemas kini hanya satu medan dengan cekap menggunakan Rangka Kerja Entiti.
Cara paling mudah ialah menetapkan nilai atribut entiti secara langsung. Walau bagaimanapun, pendekatan ini tidak disyorkan kerana ia memintas mekanisme penjejakan perubahan EF dan boleh membawa kepada tingkah laku yang tidak dijangka.
Cara yang lebih dipercayai untuk mengemas kini satu medan adalah dengan menggunakan kaedah DbContext.Attach() dan EntityEntry.Property().IsModified. Berikut ialah contoh:
<code>public void ChangePassword(int userId, string password) { var user = new User() { Id = userId, Password = password }; using (var db = new MyEfContextName()) { db.Users.Attach(user); db.Entry(user).Property(x => x.Password).IsModified = true; db.SaveChanges(); } }</code>
Dalam contoh ini, kami mula-mula mencipta objek Pengguna baharu dengan kata laluan yang dikemas kini dan melampirkannya pada DbContext semasa. Kami kemudian memberitahu EF bahawa sifat Kata Laluan telah berubah dengan menetapkan sifat IsModified kepada benar. Akhir sekali, kami menyimpan perubahan pada pangkalan data.
Pilihan lain ialah menggunakan kaedah Kemas Kini(). Kaedah ini mengambil objek entiti sebagai parameter dan mengemas kini semua sifat dalam pangkalan data. Walau bagaimanapun, sila ambil perhatian bahawa nilai kunci utama entiti mesti ditetapkan sebelum memanggil Kemas Kini().
<code>public void ChangePassword(int userId, string password) { using (var db = new MyEfContextName()) { var user = db.Users.SingleOrDefault(u => u.Id == userId); user.Password = password; db.Update(user); db.SaveChanges(); } }</code>
Dalam contoh ini, kami mula-mula mendapatkan semula entiti pengguna daripada pangkalan data. Kami kemudiannya menetapkan sifat Kata Laluan dan mengemas kini entiti dalam pangkalan data menggunakan kaedah Kemas Kini().
Mengemas kini satu medan menggunakan Rangka Kerja Entiti adalah mudah dan boleh dilakukan menggunakan pelbagai kaedah. Kaedah DbContext.Attach() dan EntityEntry.Property().IsModified menyediakan cara yang jelas dan boleh dipercayai untuk mencari medan tertentu untuk dikemas kini.
Atas ialah kandungan terperinci Bagaimana Mengemas kini Medan Tunggal dalam Rangka Kerja Entiti dengan Cekap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!