Soalan:
Andaikan anda mempunyai jadual pangkalan data dengan berbilang lajur dan anda ingin mengemas kini nilai lajur tertentu dalam rekod.
Jadual:
Pengguna
列名 |
---|
UserId |
UserName |
Password |
EmailAddress |
Kod:
<code class="language-csharp">public void ChangePassword(int userId, string password) { // 更新密码的代码... }</code>
Jawapan:
Untuk mengemas kini hanya medan UserId
Kata Laluan untuk pengguna tertentu, anda boleh menggunakan kaedah dan Attach
DbContextProperty
.
Untuk versi sebelum EF Core 7.0:
<code class="language-csharp">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>
Untuk EF Core 7.0 dan ke atas:
<code class="language-csharp">public void ChangePassword(int userId, string password) { var user = new User() { Id = userId, Password = password }; using (var db = new MyEfContextName()) { db.Users.SetAttached(user); db.Entry(user).Property(x => x.Password).IsModified = true; db.SaveChanges(); } }</code>
Nota: Dalam EF Core 7.0 dan lebih baru, kaedah Attach
telah dinamakan semula kepada SetAttached
. Kod di atas menunjukkan dua versi kaedah pelaksanaan Sila pilih kod yang sesuai mengikut versi Teras EF anda.
Atas ialah kandungan terperinci Bagaimana untuk Mengemas kini Medan Tunggal dalam Rangka Kerja Entiti?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!