我收到此错误:
SqlException:无法在具有唯一索引“RoleNameIndex”的对象“dbo.AspNetRoles”中插入重复键行。重复键值为(Teacher)。声明已经终止。
我正在尝试为单个用户添加多个角色,在我的数据库表AspNetRoles
中,我使用唯一的RoleNameIndex
密钥。以下是AspNetRoles
表格的屏幕截图:
现在,我的 AspNetUsers 表中的每个用户都被分配了一个角色。我想向用户添加另一个角色,但不断收到该错误。我该怎么办?请帮我解释一下代码。
我的代码使用用户ID和组合框的输入文本框来加载角色名称。单击按钮时,我的代码如下:
var newRole = RolecomboBox.Text;
var idnum = Int32.Parse(IdTxtArea.Text);
var item = _db.AspNetUserRoles.FirstOrDefault(w => w.UserId == idnum);
item.AspNetRole.Name = newRole;
答案 0 :(得分:2)
您的问题解决方案所需的信息都在您给出的SqlException中。
SqlException:无法在具有唯一索引“ RoleNameIndex ”的对象“ dbo.AspNetRoles ”中插入重复的键行。重复键值为(教师)。声明已经终止。
我加了你需要的3条信息。
为了在“教师”的dbo.AspNetRoles表中插入其他行,您需要删除唯一索引RoleNameIndex,因为这需要将Name列设置为唯一。