实体框架代码第一:多对多关系;从用户中删除一些角色

时间:2012-12-16 09:20:02

标签: c# entity-framework ef-code-first many-to-many

我有多对多的用户/角色关系。

当我将新用户插入数据库并将其添加到某些角色时,没关系。

但是,如何从用户中删除某些角色?我不想完全删除用户或角色,我只想: 1.从用户中删除一些角色; 2.为用户分配新角色。

我的课程:

public class User
{
    public int Id { get; set; }    
    public virtual string UserName { get; set; }
    public virtual string Password { get; set; }

    public List<Role> Roles { get; set; }
}

public class Role
{
    public int Id { get; set; }
    public virtual string Name { get; set; }

    public List<User> Users { get; set; }
}

1 个答案:

答案 0 :(得分:1)

我并不完全清楚你要求的是什么,但我认为你希望能够从用户中移除一个角色,并从适当的角色中删除该用户?

如果是这样,您将了解用户和角色,对于这个简单的案例,您希望使用List.Remove函数。

void RemUserRole(User u, Role r)
{
    u.Roles.Remove(r);
    r.Users.Remove(u);
}

这将删除每个角色和用户的相关列表中的项目。

编辑:

要向用户添加新角色,请使用List.Add方法。

void AddUserRole(User u, Role r)
{
    u.Roles.Add(r);
    r.Users.Add(u);
}

这只是将每个项目添加到另一个角色/用户列表中。