Aspnet核心身份角色更新错误



我正在尝试更新的角色,但我会遇到错误。

代码

private readonly RoleManager<IdentityRole> _roleManager;
    public EditModel(RoleManager<IdentityRole> roleManager)
    {
        _roleManager = roleManager;
    }
    [BindProperty]
    public IdentityRole IdentityRole { get; set; }
    public async Task<IActionResult> OnGetAsync(string id)
    {
        if (id == null)
        {
            return NotFound();
        }
        IdentityRole = await _roleManager.FindByIdAsync(id);
        if (IdentityRole == null)
        {
            return NotFound();
        }
        return Page();
    }
    public async Task<IActionResult> OnPostAsync()
    {
        if (!ModelState.IsValid)
        {
            return Page();
        }
        try
        {
            await _roleManager.UpdateAsync(IdentityRole);//Error is occuring here.
        }
        catch (DbUpdateConcurrencyException)
        {
        }
        return RedirectToPage("./Index");
    }

错误

invalidoperationException:无法跟踪实体类型的实例,因为已经跟踪了{'id''}的另一个具有相同密钥值的实例。连接现有实体时,请确保仅附有一个具有给定键值的实体实例。考虑使用" dbcontextoptionsbuilder.senablessentivedAtalogging"来查看相互矛盾的钥匙值。 Microsoft.entityFrameWorkcore.changetracking.internal.indernitymap.add(tkey键,internalTityEntry条目)

我更改了这样的代码及其工作,但这很奇怪,当我更改更改自动身份归一化名称列的名称时。

 var role = await _roleManager.FindByIdAsync(IdentityRole.Id);
            role.Name = IdentityRole.Name;
            await _roleManager.UpdateAsync(role);

我在那里找到了链接说明

相关内容

  • 没有找到相关文章

最新更新