我正在開發一個帶有angularjs項目的asp.net web api。我的項目實際上是混合粒度認證。我的項目中有幾個表格,但只有三個表格會導致插入問題。三個表格是AspNetRoles,RolePermission和Roles。和他們的關係是: 不能在asp.net中插入數據到很多關係
角色表中有三個角色。員工,經理和管理員。當管理員更改任何角色權限時,舊的角色權限將被刪除,並將新的權限插入到AspNetRoles表中。但是,執行此操作時會發生錯誤。錯誤是:
違反PRIMARY KEY約束'PK_dbo.AspNetRoles'。不能在對象'dbo.AspNetRoles'中插入重複鍵。重複的鍵值是(dbc1ae5c-a8a7-4aa9-b62e-0948e6e2856c)
我的代碼是刪除和更新許可
public void SaveUpdateRolePermission(RoleWisePermission rolePermissionList)
{
var RoleObject = db.Roles.Where(s => s.Id == rolePermissionList.RoleId).FirstOrDefault();
if (RoleObject.AspNetRoles.Any())
{
foreach (var rolePermission in RoleObject.AspNetRoles.ToList())
{
RoleObject.AspNetRoles.Remove(rolePermission);
}
}
foreach (AspNetRoles Role in rolePermissionList.PermissionList)
{
RoleObject.AspNetRoles.Add(Role);
}
db.SaveChanges();
db.Dispose();
}
public class RoleWisePermission
{
public List<AspNetRoles> PermissionList { get; set; }
public System.Guid RoleId { get; set; }
}
時出現db.saveChanges()
一個問題。請幫我解決這個問題。
我認爲這個問題是你不保存更改刪除角色後在添加新的之前。 –
您應該分開這些交易。 –
我也嘗試從AspNetRoles中刪除角色後保存更改。但同樣的問題仍在繼續。 @ WEI-DBA –