我在編輯用戶角色時遇到問題。我有這些代碼:編輯角色時出錯
`
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();
扔下我一個錯誤,指出:
「System.InvalidOperationException」類型的異常出現在 系統.Data.Entity.dll,但未在用戶代碼中處理
其他信息:屬性'RoleId'是對象的關鍵信息的一部分,不能修改。
我該怎麼辦?提前致謝!
因爲我被要求可以改變用戶的角色(例如從管理員到成員)。基本上升級/降級角色。 – bampie 2015-02-10 18:04:25
準確。你想改變_this_角色。以後你會怎麼看出你改變了這個角色?你應該有一些標識符,這樣你就可以跟蹤你改變的角色。如果您想更改角色,則可以更新其他屬性(RoleId除外)。 – 2015-02-10 18:18:51
也許添加一個新的ID? – bampie 2015-02-10 18:31:42