Question :
Supposons que vous ayez une table de base de données avec plusieurs colonnes et que vous souhaitiez mettre à jour la valeur d'une colonne spécifique dans l'enregistrement.
Tableau :
Utilisateurs
列名 |
---|
UserId |
UserName |
Password |
EmailAddress |
Code :
<code class="language-csharp">public void ChangePassword(int userId, string password) { // 更新密码的代码... }</code>
Réponse :
Pour mettre à jour uniquement le champ UserId
Mot de passe pour un utilisateur spécifique, vous pouvez utiliser les méthodes et de Attach
DbContextProperty
.
Pour les versions antérieures à 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>
Pour EF Core 7.0 et versions ultérieures :
<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>
Remarque : Dans EF Core 7.0 et versions ultérieures, la méthode Attach
a été renommée SetAttached
. Le code ci-dessus montre deux versions des méthodes d’implémentation. Veuillez choisir le code approprié en fonction de votre version d’EF Core.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!