【发布时间】:2022-01-14 06:56:48
【问题描述】:
我有两个模型
public class User
{
public User()
{
this.Permissions = new HashSet<Permission>();
}
public string UserName { get; set; }
public ICollection<Permission> Permissions { get; set; }
}
与
public class Permission
{
public Permission()
{
this.Users = new HashSet<User>();
}
[Required]
public string Name { get; set; }
public ICollection<User> Users { get; set; }
}
连接表是自动创建的,我看不到 ef 模型。当我想更新用户的权限时,我在控制器中这样做
user.Permissions.Clear();
foreach (var permissionID in userDTO.Permissions)
{
var permission = _context.Permissions.Find(permissionID.PermissionID);
if (permission != null)
{
user.Permissions.Add(permission);
}
}
await _context.SaveChangesAsync();
但是,当我尝试清除用户的现有权限并为用户插入新权限时,我收到一个错误:Duplicate entry '1-1' for key 'permissionuser.PRIMARY'
我该如何解决这个问题?
【问题讨论】:
-
当我尝试清除现有权限时 -- 请说明如何。
标签: c# entity-framework asp.net-core asp.net-web-api