// Update an existing Person public int Update(Person mPerson) { var result = 0; EDM.Person edmLoadedPerson = null; EDM.Person edmPerson = PersonMapper.MapOneDMtoEDM(mPerson); try { // Load object into context (entity framework) edmLoadedPerson = _dbContext.People.Where(edm => edm.Id == mPerson.Id).FirstOrDefault(); if (edmLoadedPerson == null) //not found? { throw new Exception("Person not found to update"); } else { // Update _dbContext.Entry(edmLoadedPerson).CurrentValues.SetValues(edmPerson); } // Save in data access (entity framework) result = this._dbContext.SaveChanges(); } catch (System.Data.UpdateException ex) { if (ex.InnerException != null && ex.InnerException is System.Data.SqlClient.SqlException && ((System.Data.SqlClient.SqlException)ex.InnerException).ErrorCode == 8152) { throw ex.InnerException; } else { throw ex; } } return(result); }