Frage:
Angenommen, Sie haben eine Datenbanktabelle mit mehreren Spalten und möchten den Wert einer bestimmten Spalte im Datensatz aktualisieren.
Tabelle:
Benutzer
列名 |
---|
UserId |
UserName |
Password |
EmailAddress |
Code:
<code class="language-csharp">public void ChangePassword(int userId, string password) { // 更新密码的代码... }</code>
Antwort:
Um nur das Feld UserId
Passwort für einen bestimmten -Benutzer zu aktualisieren, können Sie die Methoden und von Attach
DbContextProperty
verwenden.
Für Versionen vor 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>
Für EF Core 7.0 und höher:
<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>
Hinweis: In EF Core 7.0 und höher wurde die Methode Attach
in SetAttached
umbenannt. Der obige Code zeigt zwei Versionen von Implementierungsmethoden. Bitte wählen Sie den entsprechenden Code entsprechend Ihrer EF Core-Version aus.
Das obige ist der detaillierte Inhalt vonWie aktualisiere ich ein einzelnes Feld im Entity Framework?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!