.net IdentityUser.Update(用户)另一个相同类型的实体已具有相同的主键值

yuvru6vn  于 2022-12-20  发布在  .NET
关注(0)|答案(1)|浏览(116)
[HttpPost]
    public ActionResult Edit(ApplicationUser user, string password)
    {  
        if(password.IsEmpty() == false)
        {
            user.PasswordHash = userManager.PasswordHasher.HashPassword(password);
        }
        user.Status = Enums.DataStatus.Updated;

        var result =userManager.Update(user);  //error!! 

        return RedirectToAction("EmployeeList");
    }

如果我在发布编辑时更改了UserName变量,我不会收到错误,但是当我使用它而不更改它时,它会给出错误。我该如何修复它(我想通过更改其他属性而不更改用户名来使用它)

mwngjboj

mwngjboj1#

必须先将用户附加到现有用户。

[HttpPost]
    public ActionResult Edit(ApplicationUser user, string password)
    {  

        var Existinguser = await UserManager.FindByNameAsync(user.userName);

        if(password.IsEmpty() == false)
        {
            Existinguser.PasswordHash = userManager.PasswordHasher.HashPassword(password);
        }
        Existinguser.Status = Enums.DataStatus.Updated;

        //...

        //Update the existing user here
        // ExistingUser.Address = user.Address;
        //..

        var result =userManager.Update(ExistingUser);  //Update existing user here

        return RedirectToAction("EmployeeList");
    }

相关问题