speichert Ich habe ein .NET-Core-2-MVC-Projekt mit ASPnet Identität einrichten bekommt, eine ApplicationUser mit:Identität Usermanager UpdateAsync kein benutzerdefinierten Felder Datenbank
public class ApplicationUser : IdentityUser
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
In dieser Aktion, die ich den First bekommen und Name aus einem Formular und wollen sie in die Datenbank speichern:
private readonly UserManager<ApplicationUser> _userManager;
...
var user = _userManager.GetUserAsync(User).Result;
user.FirstName = model.FirstName;
user.LastName = model.LastName;
var result = _userManager.UpdateAsync(user).Result;
Alles funktioniert (Passwort zu aktualisieren, das Passwort zurückzusetzen, usw.) mit Ausnahme _userManager.UpdateAsync(user)
mit den benutzerdefinierten Feldern zu speichern. Das zurückgegebene result.Succeeded ist immer wahr, aber die Änderungen werden nicht in der Datenbank gespeichert.
Was mache ich hier falsch?
Edit: die Debug-Konsole gibt das folgende Update-Abfrage für UpdateAsync
, die die benutzerdefinierten Felder fehlt:
UPDATE [AspNetUsers] SET [AccessFailedCount] = @p0, [ConcurrencyStamp] = @p1, [Email] = @p2, [EmailConfirmed] = @p3, [FirstName] = @p4, [LastName] = @p5, [LockoutEnabled] = @p6, [LockoutEnd] = @p7, [NormalizedEmail] = @p8, [NormalizedUserName] = @p9, [PasswordHash] = @p10, [PhoneNumber] = @p11, [PhoneNumberConfirmed] = @p12, [SecurityStamp] = @p13, [TwoFactorEnabled] = @p14, [UserName] = @p15
haben Sie nach dem Hinzufügen der benutzerdefinierten Eigenschaften eine Migration generiert –
Ja, ich tat. Doppel überprüft und die Spalten existieren in der DB – MysticEarth
Sie könnten versuchen, warten auf die GetUserAsync – sheavens