您好我正在使用Entity framework 5和mvc4并且正在努力实现实体框架关系
我有一个User,Role和UserRole表 该模型在Entity framework
中创建
以下是我用来保存用户和角色的代码,但这不起作用 在传递给此方法之前设置User和Role对象属性
public void saveNewUser(User u, Role r)
{
using (FormValueEntities db = new FormValueEntities())
{
u.Roles.Add(r);
r.Users.Add(u);
db.SaveChanges();
}
}
如何创建新用户并同时设置角色?
答案 0 :(得分:1)
我认为可能是因为用户和角色未附加到您正在创建的上下文中。所以你需要做这样的事情:
User newUser = new User(){ ... Set proprties ...};
db.Users.Add(newUser);
newUser.Roles.Add(r);
db.SaveChanges();
请注意,您无需明确地在两个方向添加链接。
答案 1 :(得分:0)
不要忘记在您的实体中加入UserRole
表。您只需将其拖放到设计视图中即可。
答案 2 :(得分:0)
首先,您必须更新您的实体框架。
代码:
public void saveNewUser(User u, Role r)
{
using (FormValueEntities db = new FormValueEntities())
{
db.Role.Add(r);
db.User.Add(u);
db.SaveChanges();
}
}
答案 3 :(得分:0)
您可以尝试使用Membership api:
const string adminRole = "Administrator";
const string adminUserName = "Admin";
WebSecurity.CreateUserAndAccount(adminUserName, "123456", null, false);
Roles.CreateRole(adminRole);
Roles.AddUsersToRole(new string[] { adminUserName }, adminRole);