2016-05-13 7 views
0

Hallo im Betrieb zu aktualisieren versuchen, aber während der Aktualisierung es Fehler zeigt, in der Nähe von db. Änderungen speichern().„Verletzung von PRIMARY KEY-Einschränkung‚PK__UserRights__0155B971‘. Kann doppelten Schlüssel in Objekt‚dbo.UserRights‘eingefügt werden. Fehler

seine zeigt die Fehler, die

eine Ausnahme vom Typ erwähnen unten ist ‚System.Data.Entity.Infrastructure.DbUpdateException‘ aufgetreten in EntityFramework.dll wurde aber nicht in Benutzercode behandelt

Also ich in innere Ausnahme gesucht Es zeigt den folgenden Fehler an:

"Verletzung der PRIMARY KEY-Einschränkung 'PK__UserRights__0155B971'. . Kann keinen doppelten Schlüssel in Objekt 'dbo.UserRights' \ r \ nDie Anweisung beendet worden ist "}

Mein Controller-Code

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

Sie eine vorhandene Entität hinzufügen.Sie müssen nur aktualisieren (entfernen Sie die Zeile 'db.Use rRights.Add (objuserrightsresult); ') –

+0

ok stephen kann ich einen Versuch haben – Susan

+0

Stephen seine Arbeit können Sie mir erklären, welchen Fehler ich gemacht habe – Susan

Antwort

2

Kommentar zur Linie.

//db.UserRights.Add(objuserrightsresult); 

Da Sie machen UPDATE, sollten Sie es nicht wieder hinzufügen ... nur aktualisieren Sie die Felder Wert und dann einfach db.SaveChanges();

+0

mhm jetzt verstand ich rossi kasim danke: D – Susan

Verwandte Themen