链接表中的EF插入在其中一个父表中创建条目

本文关键字:一个 创建 EF 插入 在其中 链接表 | 更新日期: 2023-09-27 18:04:22

情况如下:-表用户(id, name)-表角色(id, name)-一个链接表UsersRoles (idUser, idRole)

在链接表中,idUser和idRoles是fk,它们都被标记为复合主键。

在EF中,这会产生以下模型:

    public class User {
        public int ID {get;set;}
        public string Name {get;set;}
        public ICollection<Role> Roles {get;set;}
   }
    public class Role{
        public int ID {get;set;}
        public string Name {get;set;}
        public ICollection<User> Users{get;set;}
   }

当向用户插入角色时,会发生奇怪的事情。

user.Roles.Add(role);
context.SaveChanges();

在UsersRoles表中创建一个条目,并在Role表中添加一个Role。实际上,它复制了我试图与用户关联的角色。

与EF有关吗?是因为表格上的FK和PK设置吗?

任何提示都可以欣赏。

链接表中的EF插入在其中一个父表中创建条目

在做了一些实验之后,我发现我犯了一个愚蠢的错误。我正在调用user.Roles.Add(role),其中role是一个新的角色实体,它的id和名称已填充。(role = new role (id, name))

我需要做的是从DB记录中获取一个现有角色,然后将其添加给用户。(role = dbContext.Find(id)))

要添加的角色是否具有已经存在的角色的Id值?如果它只有一个名称,那么EF可能会向数据库添加一个新条目。

相关文章: