Я додав власні поля до ApplicationUser
класу.
Я також створив форму, за допомогою якої користувач може вводити / редагувати поля.
Однак з якихось причин я не можу оновити поля в базі даних.
[HttpPost]
[ActionName("Edit")]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Manage(EditProfileViewModel model)
{
if (ModelState.IsValid)
{
// Get the current application user
var user = User.Identity.GetApplicationUser();
// Update the details
user.Name = new Name { First = model.FirstName, Last = model.LastName, Nickname = model.NickName };
user.Birthday = model.Birthdate;
// This is the part that doesn't work
var result = await UserManager.UpdateAsync(user);
// However, it always succeeds inspite of not updating the database
if (!result.Succeeded)
{
AddErrors(result);
}
}
return RedirectToAction("Manage");
}
Моя проблема схожа на власні властивості MVC5 ApplicationUser , але, схоже, використовується старіша версія Identity, оскільки клас IdentityManager, здається, не існує.
Хтось може допомогти мені, як оновити User
інформацію в базі даних?
ОНОВЛЕННЯ: Якщо я включу всі поля у форму реєстру, всі значення зберігаються у відповідному полі в новому записі Users
таблиці з бази даних.
Я не знаю, як вносити зміни в поля існуючого користувача (рядок у users
таблиці). UserManager.UpdateAsync(user)
не працює.
Також зверніть увагу, що моя проблема більше орієнтована на ідентичність, ніж EntityFramework