2016-05-13 18 views
0

こんにちはイム操作を更新しようとしている。しかし、それはデシベルに近く、エラーを示す更新中。(変更を保存)。PRIMARY KEY制約 『PK__UserRights__0155B971』の「違反。オブジェクトのdbo.UserRights '内の重複するキーを挿入できませんが。エラー

あるエラーが

の下型「System.Data.Entity.Infrastructure.DbUpdateException」の例外を言及

そのショーはEntityFramework.dllで発生したが、私は内部例外で検索

ユーザコードで処理されませんでしたそれは以下に言及されているエラーを示しています。

"PRIMARY KEY制約 'PK__UserRights__0155B971'に違反しています。オブジェクトのdbo.UserRights '内の重複するキーを挿入することはできません\ rを\ nのステートメントが終了しました "}

マイコントローラー・コード

public ActionResult UsetBasedAuthenticationEditSave(UserAuthenticationViewModel objuavm) 
    { 
     ViewBag.UserID = new SelectList(db.UserDetails, "UserID", "UserName", objuavm.UserID); 
     ViewBag.ModuleID = new SelectList(db.UserModules, "ModuleID", "ModuleName", objuavm.ModuleID); 
     ViewBag.SubModule = new SelectList(db.UserModules, "SubModule", "SubModule", objuavm.SubModule); 

     var objuserrightsresult = db.UserRights.Find(objuavm.UserRitsID); 
     if(objuserrightsresult!=null) 
     { 
      objuserrightsresult.UserID = objuavm.UserID; 
      objuserrightsresult. ModuleID = objuavm.ModuleID; 
      objuserrightsresult. Toview = Convert.ToBoolean(objuavm.Toview); 
      objuserrightsresult. ToAdd = Convert.ToBoolean(objuavm.ToAdd); 
      objuserrightsresult. ToEdit = Convert.ToBoolean(objuavm.ToEdit); 
      objuserrightsresult. ToDelete = Convert.ToBoolean(objuavm.ToDelete); 
      objuserrightsresult.IsActive = Convert.ToBoolean(objuavm.IsActive); 
      objuserrightsresult.IsDeleted = Convert.ToBoolean(objuavm.IsDeleted); 
      objuserrightsresult. EditedDate = DateTime.Now; 
      objuserrightsresult. LastActiveOn = DateTime.Now; 
      objuserrightsresult. RowID = Guid.NewGuid(); 
      objuserrightsresult. CreatedSeesionID = Guid.NewGuid(); 
      objuserrightsresult. EditedSessionID = Guid.NewGuid(); 
      objuserrightsresult. OfflineMode = false; 
      objuserrightsresult.OfflineID = Guid.NewGuid(); 
      objuserrightsresult.SubModule = objuavm.SubModule; 
      db.UserRights.Add(objuserrightsresult); 
      } 
     db.SaveChanges(); 
     return RedirectToAction("UserBasedAuthenticationIndex"); 
    } 
+0

既存のエンティティを追加しました。更新する必要があります( 'db.Use –

+0

ok stephenは私に試してもらうことができます – Susan

+0

Stephenが働いてくれたことを教えてください – Susan

答えて

2

コメントこの行:。。

//db.UserRights.Add(objuserrightsresult); 

ますので、更新を行っていますが、もう一度追加する必要はありません。フィールド値を更新して、ただコールしてください。db.SaveChanges();

+0

mhm今私はrosdi kasimに感謝しました:D – Susan

関連する問題