修改角色时遇到问题
Trouble editing the role
我在编辑用户角色时遇到问题。我有这些代码:
`
Entities db2 = new Entities();
private UsersContext db = new UsersContext();
//
// POST: /AdminOnly/Edit/5
[Authorize(Roles = "Owner")]
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Edit(UserProfile userprofile, int? roless)
{
if (ModelState.IsValid)
{
webpages_UsersInRoles s = new webpages_UsersInRoles();
s = db2.webpages_UsersInRoles.Where(m => m.UserId == userprofile.UserId).FirstOrDefault();
if (s != null) //with existing role, edit it
{
s.RoleId = roless.Value;
db.Entry(userprofile).State = EntityState.Modified;
db2.Entry(s).State = EntityState.Modified;
db.SaveChanges();
db2.SaveChanges();
return RedirectToAction("Index");
}
else //no existing role
{
//some code here
}
}
ViewBag.roless = new SelectList(db2.webpages_Roles, "RoleId", "RoleName");
return View(userprofile);
}
`
当我尝试在数据库中保存更改时,db2.SaveChanges();
向我抛出一条错误消息:
An exception of type 'System.InvalidOperationException' occurred in
System.Data.Entity.dll but was not handled in user code
Additional information: The property 'RoleId' is part of the object's
key information and cannot be modified.
我该怎么办?提前致谢!
RoleId用作实体的关键约束和主要标识符。您无法更改此 ID。只是不要更新这个 属性 或添加更多评论为什么你需要更新它。
说的是RoleId是主键的一部分,不能修改。不要编辑 webpages_UsersInRoles 中的现有行,而是尝试删除该行并添加具有新 RoleId 值的新行。
原来我要更改的列是复合外键。我需要删除 RoleId
的第一个值并将更改保存到 table。然后再次添加第二个值并将新更改保存到 table。感谢帮助过的人!
我在编辑用户角色时遇到问题。我有这些代码:
`
Entities db2 = new Entities();
private UsersContext db = new UsersContext();
//
// POST: /AdminOnly/Edit/5
[Authorize(Roles = "Owner")]
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Edit(UserProfile userprofile, int? roless)
{
if (ModelState.IsValid)
{
webpages_UsersInRoles s = new webpages_UsersInRoles();
s = db2.webpages_UsersInRoles.Where(m => m.UserId == userprofile.UserId).FirstOrDefault();
if (s != null) //with existing role, edit it
{
s.RoleId = roless.Value;
db.Entry(userprofile).State = EntityState.Modified;
db2.Entry(s).State = EntityState.Modified;
db.SaveChanges();
db2.SaveChanges();
return RedirectToAction("Index");
}
else //no existing role
{
//some code here
}
}
ViewBag.roless = new SelectList(db2.webpages_Roles, "RoleId", "RoleName");
return View(userprofile);
}
`
当我尝试在数据库中保存更改时,db2.SaveChanges();
向我抛出一条错误消息:
An exception of type 'System.InvalidOperationException' occurred in System.Data.Entity.dll but was not handled in user code
Additional information: The property 'RoleId' is part of the object's key information and cannot be modified.
我该怎么办?提前致谢!
RoleId用作实体的关键约束和主要标识符。您无法更改此 ID。只是不要更新这个 属性 或添加更多评论为什么你需要更新它。
说的是RoleId是主键的一部分,不能修改。不要编辑 webpages_UsersInRoles 中的现有行,而是尝试删除该行并添加具有新 RoleId 值的新行。
原来我要更改的列是复合外键。我需要删除 RoleId
的第一个值并将更改保存到 table。然后再次添加第二个值并将新更改保存到 table。感谢帮助过的人!