にカスタムフィールドを保存していない私はApplicationUserを使用して、ASPNETアイデンティティを設定し、.NETのコア2 MVCプロジェクトを持っている:このアクションでアイデンティティのUserManager UpdateAsyncがデータベース
public class ApplicationUser : IdentityUser
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
私は姓を取得し、そして、フォームからの姓は、データベースに保存したい:
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;
すべてがカスタムフィールドを保存するために_userManager.UpdateAsync(user)
を使用する以外は(など、パスワードをリセットし、パスワードを更新する)動作します。返されるresult.Succeededは常にtrueですが、変更はデータベースに保存されません。
私はここで間違っていますか?
編集: デバッグコンソールは、カスタムフィールドを欠いUpdateAsync
ための次の更新クエリを、出力:完全性については
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
カスタムプロパティを追加した後で移行を生成しました –
はい、ありました。ダブルチェックと列はDBに存在します – MysticEarth
GetUserAsyncで待機することができます – sheavens