// 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);
        }