Asp.net 实体框架(代码优先)、多对多、用户和角色
我得到了带有自定义MembershipProvider的MVC3应用程序,所以它将新注册的用户存储到我的数据库中。 我对现有数据库使用代码优先的方法(我已经为此使用了实体框架工具)。已获取表用户、角色和用户角色。 在表中,我得到: 用户标识(PK) 用户名 密码 电子邮件 在我得到的表格角色中 罗莱德(PK) 名称 描述 在我得到的表格UsersRoles中 用户ID(设置为复合主键) RoleID(设置为复合主键)Asp.net 实体框架(代码优先)、多对多、用户和角色,asp.net,entity-framework,entity-framework-4,ef-code-first,many-to-many,Asp.net,Entity Framework,Entity Framework 4,Ef Code First,Many To Many,我得到了带有自定义MembershipProvider的MVC3应用程序,所以它将新注册的用户存储到我的数据库中。 我对现有数据库使用代码优先的方法(我已经为此使用了实体框架工具)。已获取表用户、角色和用户角色。 在表中,我得到: 用户标识(PK) 用户名 密码 电子邮件 在我得到的表格角色中 罗莱德(PK) 名称 描述 在我得到的表格UsersRoles中 用户ID(设置为复合主键) RoleID(设置为复合主键) 但我不知道如何让它向UsersRoles表添加一条新记录..使用UserID
但我不知道如何让它向UsersRoles表添加一条新记录..使用UserID和RoleID(默认值,第一条RoleID=1-正常用户权限)。任何帮助都将不胜感激。您只需从数据库中获取所需的角色,即可完成所需的任务
role.Users.Add(user);
SaveChanges();
EF将在连接表中创建新记录。请注意,此时必须加载用户
集合
这样做,您甚至不需要语句Users.Add(user)
以保存用户
同样,您可以将角色对象添加到user.Roles
当您想删除连接表中的记录时,您可以从加载的
用户.Roles
集合中删除一个角色,或者从角色.Users
中删除一个用户。不添加任何角色并假设没有任何角色的用户是普通用户,怎么样?谢谢,这很有帮助。:)您能告诉我在哪里可以找到一些关于修改成员资格的有用信息或示例,以便它与我的角色表一起工作。这样我就可以有效地使用[Authorize(Roles=“Admin,SuperUser”)]。先谢谢你。
public void AddUser(User user)
{
Users.Add(user);
SaveChanges();
}
var tmp = new User { Username = username, Password = GetMd5Hash(password), Email = email };
using (var db = new mycontext())
{
mycontext.AddUser(userObj);
}
role.Users.Add(user);
SaveChanges();