public override void UpdateUser(MembershipUser _user) { var dbContext = new DBContext(); MembershipPerson personData = (_user as MembershipPerson); User usr = dbContext.GetUser(personData.person.PersonID); if (usr == null) { usr = new User(); usr.Person = dbContext.GetPerson(personData.person.PersonID); if (usr.Person == null) { return; } } usr.Person.Avatar = personData.person.Avatar; usr.Person.Name = personData.person.Name; usr.Person.Gender = personData.person.Gender; usr.UserName = personData.UserName; usr.UserEmailAddress = personData.Email; IQueryable <Photo> photos = (from p in dbContext.Photos where p.PersonID == usr.Person.PersonID select p); foreach (Photo p in photos) { System.Collections.Generic.IEnumerable <Photo> ps = personData.person.Photos.Select(x => x).Where(x => x.PhotoID == p.PhotoID); if (ps.Count() == 0) { dbContext.Entry(p).State = System.Data.EntityState.Deleted; } else { p.PhotoStream = ps.First().PhotoStream; } } IEnumerable <Photo> photosToAdd = personData.person.Photos.Where(x => x.PhotoID == 0).Select(x => x); foreach (Photo p in photosToAdd) { dbContext.AddPhoto(p); } dbContext.SaveChanges(); }